2016-11-29 78 views
1

我在文本输入上创建规则,但在创建规则时出现错误。错误说JQuery验证在创建简单规则时抛出错误

Unhandled exception at line 147, column 4 in https://localhost:44368/Scripts/jquery.validate.js 0x800a138f - JavaScript runtime error: Unable to get property 'settings' of undefined or null reference"

这是从该行即将在验证文件

settings = $.data(element.form, "validator").settings; 

其中

$.data(element.form, "validator") 

是不确定的。为什么是这样???

这里是元素

<input class="form-control input-lg" id="zipCodeText" type="text" placeholder="e. g. 94901" value="94102"> 

这里是规则

$('#zipCodeText').rules("add", { 
    required: true, 
    minlength: 5, 
    maxlength: 5, 
    messages: { 
    required: "Required input", 
    minlength: jQuery.validator.format("Please, {0} characters are necessary"), 
    maxlength: jQuery.validator.format("Please, {0} characters are necessary") 
    } 
}); 
+0

好的我解决了它,我需要添加一个角色=“form”属性到窗体标签! WTF! – user1186050

+0

好的我也注意到,如果我不首先验证表单,就会抛出错误!它是否正确? – user1186050

+0

引用OP:*“我需要在表单标签中添加一个'role =”form“'属性!”*〜[我不这么认为。没有它,工作得很好。](http://jsfiddle.net/1rmLksw8/) – Sparky

回答

0

JavaScript runtime error: Unable to get property 'settings' of undefined or null reference"

必须第一致电表单元素上的.validate()方法插件初始化

$('#yourform').validate({ // <-- INITIALIZE the plugin on your form 
    // any options, rules, or callbacks 
}); 

ok I also noticed that the error is thrown if I don't validate the form first! is this correct?

你不 “验证” 的形式第一次......你通过调用.validate()法 “初始化”它。