jQuery验证框架(七)注意事项 (jQuery validation)

[b][size=large]jQuery验证框架[/size][/b]

[b][color=green][size=medium]七、注意事项[/size][/color][/b]

[size=medium][color=indigo][b][1]复杂的name属性值[/b][/color][/size]
当使用rules选项时,如果表单的name属性值包含有[b]非法的javascript标识符[/b],必须将name值加上引号。

$("#myform").validate({
rules: {
// no quoting necessary
name: "required",
// quoting necessary!
"user[email]": "email",
// dots need quoting, too!
"user.address.street": "required"
}
});


[size=medium][color=indigo][b][2]重构规则[/b][/color][/size]
不论什么时候,当你的表单中的多个字段含有相同的验证规则及验证消息,重构规则可以减少很多重复。使用 [size=small][b][color=#065fb9]addMethod[/color][/b][/size] 和 [size=small][color=#065fb9][b]addClassRules[/b][/color][/size] 将非常有效果。
假使已经重构了如下规则:

// alias required to cRequired with new message
$.validator.addMethod("cRequired", $.validator.methods.required,
"Customer name required");
// alias minlength, too
$.validator.addMethod("cMinlength", $.validator.methods.minlength,
// leverage parameter replacement for minlength, {0} gets replaced with 2
$.format("Customer name must have at least {0} characters"));
// combine them both, including the parameter for minlength
$.validator.addClassRules("customer", { cRequired: true, cMinlength: 2 });

那么使用的时候如下:

<input name="customer1" class="customer" />
<input name="customer2" class="customer" />
<input name="customer3" class="customer" />


[size=medium][color=indigo][b][3]验证消息[/b][/color][/size]
当验证了一个无效的表单元素,验证消息显示在用户面前。这些消息是从哪里来的呢?有三个途径来取得验证消息。
[size=small][color=green] 1.通过待验证表单元素的title属性
2.通过默认的验证消息
3.通过插件设置(messages选项)[/color][/size]
这三种途径的优先顺序为:[b][size=small][color=darkred]3 > 1 > 2[/color][/size][/b]

[size=medium][color=indigo][b][4]验证消息与Google工具栏的冲突[/b][/color][/size]
有时候验证消息会与Goole工具栏的AutoFill插件冲突。AutoFill通过替换表单元素的title属性,以显示提示消息。此时,验证消息如果获取的是title属性值,那么就得不到我们预期想要得到的结果。当文档载入时,可以通过如下方法避免冲突。

$("input.remove_title").attr("title", "");


[size=medium][color=indigo][b][5]表单提交[/b][/color][/size]
默认地,表单验证失败时阻止表单的提交,当验证通过,表单提交。当然,也可以通过[color=indigo][size=small][b]submitHandler[/b][/size][/color]来自定义提交事件。
将提交按钮的class属性设置成cancel,在表单提交时可以跳过验证。

<input type="submit" name="submit" value="Submit" />
<input type="submit" class="cancel" name="cancel" value="Cancel" />

下面这段代码将循环提交表单:

$("#myform").validate({
submitHandler: function(form) {
// some other code maybe disabling submit button
// then:
$(form).submit();
}
});

$(form).submit() 触发了另外一轮的验证,验证后又去调用submitHandler,然后就循环了。可以用 form.submit() 来触发原生的表单提交事件。

$("#myform").validate({
submitHandler: function(form) {
form.submit();
}
});



[color=green]原文请见:[/color][url]http://docs.jquery.com/Plugins/Validation[/url]

----------------------------------------------------------------------------------------------------------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值