我想使用找到的jQuery Validation插件验证一些asp.net文本框 http://docs.jquery.com/Plugins/Validation,但似乎元素必须位于表单标记之间。如果我只有几个元素,我很难称之为一个表单,所以我宁愿不将它们包含在表单元素中。有没有解决的办法?另外,如果我在表单上有两个按钮,取消和提交按钮,我希望表单仅在单击提交按钮时验证,而不是取消按钮,这是如何完成的?
答案 0 :(得分:2)
jquery validate插件需要表单元素才能运行,因此您应该在表单中包含表单字段(无论多少)。
您可以告诉验证插件不要在表单提交时运行,然后在单击正确的提交按钮时手动验证表单。
例如,使用类来标识正确的提交按钮:
$(document).ready(function() {
var form = $("form");
form.validate({
onsubmit: false,
});
//Validate form only if validation submit button is clicked
//Allows cancel submit buttons to function properly
$('.validate', form).click(function() {
if (form.valid()) {
form.submit();
}
else {
form.validate().form();
}
});
});
答案 1 :(得分:2)
我只有几个元素 我很难称之为表格 而不是把它们包裹在里面 形式元素。
如果元素不在表单标记内,那么它不是有效的HTML文档,因此脚本中的行为可能会变得很糟糕,具体取决于浏览器如何处理格式错误的HTML。
大多数浏览器会隐式创建表单,但现在您无法控制表单的行为。默认值通常是针对请求页面的URL的帖子操作表单。
问题是,您可能不知道在JQuery中使用哪个选择器来获取对表单的引用......但我认为$("form")
可以解决问题。
验证何时单击提交按钮,但不是取消按钮
插件拦截并运行表单的提交事件。通常,取消按钮是html输入元素,type属性设置为“reset”:
<input type="reset" value="cancel" />
重置类型按钮不会导致表单提交,这不会触发验证。
如果您使用其他按钮类型,请确保onclick甚至返回false。这取消了表单的提交操作,但仍允许您在单击按钮时运行自己的javasctipt。