我一直试图弄清楚为什么电话号码的验证触发了电话号码字段。我正在使用Validator plugin以及屏蔽输入插件来为一组字段设置一些验证。我不怀疑这个特定问题与蒙面输入插件的使用有关,但无论如何我都提到它。
如果填写了任何字段(扩展字段除外),则需要所有字段(扩展名除外)。该代码正在做它应该做的事情,但验证正在触发我不想要的额外验证。电话号码正在进行长度检查,即使我没有在任何需要的地方编码。
$("#requestform").validate({
rules: {
namedepa: {
skip_or_fill_minimum: [6, ".section"]
},
techdepa: {
skip_or_fill_minimum: [6, ".section"]
},
conphodepa: {
skip_or_fill_minimum: [6, ".section"],
maskedPhone: true
},
techemaildepa: {
skip_or_fill_minimum: [6, ".section"]
},
adddepa: {
skip_or_fill_minimum: [6, ".section"]
},
roomdepa: {
skip_or_fill_minimum: [6, ".section"]
}
},
onfocusout: function (element) {
$(element).valid();
},
focusCleanup: true,
errorClass: "error"
});
var ErrorMessage = " Required";
jQuery.extend(jQuery.validator.messages, {
skip_or_fill_minimum: ErrorMessage,
required: ErrorMessage
});
我创建了一个JSFiddle来演示我遇到的问题。如果您在字段中进行选项卡,当您到达并传递电话号码字段时,将显示“您必须输入不超过10个字符”消息。
我不知道从哪里开始。我创建的JsFiddle也有我创建的maskedPhone验证器,虽然我不能认为这是一个问题,我已经测试了我在www.regexpal.com网站上使用的电话号码。
答案 0 :(得分:1)
您不应该需要onfocusout
回调函数...这是默认行为。此外,errorClass: "error"
是默认值。 See documentation for more info
其次,错误消息由电话字段内的maxlength="10"
属性触发,并且屏蔽输入本身超过10个字符。
<input name="phodepa" type="text" maxlength="10" id="phodepa" class="setTelephone section"/>
您修改过的代码:http://jsfiddle.net/vY22J/
当您选择表单上的所有字段作为规则的一部分时,我不完全确定您使用skip_or_fill_minimum
规则的原因。当你全部required
时,当没有填写任何内容时,将跳过整个表单,这也是插件的默认行为。我想在这种情况下我不理解这一点。
修改强>:
用户要注意:skip_or_fill_minimum
规则中存在一个开放的Github问题。