1

含まれるライブラリ

@Scripts.Render("~/Scripts/jquery-ui-1.11.4.min.js")
@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js")
@Scripts.Render("~/Scripts/jquery.validate.js")

私の検証は、ボタンAddがクリックされたときにのみアクティブになります。

$('#form1').validate({
        rules: {
            PROGRAM: {
                required: true,
                maxlength:20
            },
            UNIT:"required",
            IS_ACTIVE:"required"
        },
        messages: {
            PROGRAM: {
                required: "Program Code is required.",
                maxlength: "Program code cannot be over 20 characters long"
            },
            UNIT: {
                required: "Unit code is required. Please select one."
            },
            IS_ACTIVE:{
                required:"Is it active?"
            }
        },
        errorElement: 'div',
        errorLabelContainer: 'validationErrDisplay'
    });
   $('#programUnitInquiry').validate().cancelSubmit = false;

上記のコードとイベント ハンドラー (Addボタンのハンドラーを含む) は、 にラップされ$(document).ready()ます。

ではform1PROGRAMはテキスト ボックスで、残りはドロップダウン リストです。UNITドロップダウン リストをクリックすると、ランタイム エラーがスローされます。エラーは/Scripts/jquery.validate.js、バージョン 1.10.0 のファイルの 1234 行目から発生します。

if (!jQuery.event.special.focusin && !jQuery.event.special.focusout && document.addEventListener) {
        $.each({
            focus: 'focusin',
            blur: 'focusout'
        }, function( original, fix ){
            $.event.special[fix] = {
                setup:function() {
                    this.addEventListener( original, handler, true );
                },
                teardown:function() {
                    this.removeEventListener( original, handler, true );
                },
                handler: function(e) {
                    var args = arguments;
                    args[0] = $.event.fix(e);
                    args[0].type = fix;
                    return $.event.handle.apply(this, args);
                }
            };
            function handler(e) {
                e = $.event.fix(e);
                e.type = fix;
                return $.event.handle.call(this, e); // <-- error
            }
        });
    }

エラーメッセージ:

0x800a138f - JavaScript ランタイム エラー: 未定義または null 参照のプロパティ 'call' を取得できません

UNITレンダリング後のドロップダウン リストの HTML:

<select name="UNIT" id="UNIT" data-val-required="The Unit Code field is required." data-val="true">
<option value="">-- Select a Unit --</option>
<!-- bunch of options retrieved from database -->
</select>
4

0 に答える 0