Asp.net Jquery验证插件是否需要表单标记?

Asp.net Jquery验证插件是否需要表单标记?,asp.net,jquery,jquery-validate,Asp.net,Jquery,Jquery Validate,我想使用在上找到的jQuery验证插件验证一些asp.net文本框 ,但元素似乎必须位于表单标记之间。如果我只有几个元素,我几乎不会称之为表单,所以我宁愿不要将它们包装在表单元素中。有办法解决这个问题吗?另外,如果我在表单上有两个按钮,一个是取消按钮,一个是提交按钮,我只希望表单在单击提交按钮时进行验证,而不是取消按钮,那么这是如何实现的呢?jquery验证插件需要一个表单元素来运行,因此您应该拥有表单字段(无论字段有多少)包含在表单中 您可以告诉验证插件不要对表单提交操作,然后在单击正确的提交

我想使用在上找到的jQuery验证插件验证一些asp.net文本框
,但元素似乎必须位于表单标记之间。如果我只有几个元素,我几乎不会称之为表单,所以我宁愿不要将它们包装在表单元素中。有办法解决这个问题吗?另外,如果我在表单上有两个按钮,一个是取消按钮,一个是提交按钮,我只希望表单在单击提交按钮时进行验证,而不是取消按钮,那么这是如何实现的呢?

jquery验证插件需要一个表单元素来运行,因此您应该拥有表单字段(无论字段有多少)包含在表单中

您可以告诉验证插件不要对表单提交操作,然后在单击正确的提交按钮时手动验证表单

例如,使用类来标识正确的提交按钮:


$(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();
    }
  });

});
我只有几个元素,我会的 我几乎不把它叫做表格,所以我会 而不是把它们包在一个盒子里 表单元素

如果元素不在表单标记中,则它不是有效的HTML文档,因此脚本中的行为可能会变得不稳定,这取决于浏览器如何处理格式错误的HTML

大多数浏览器都会隐式创建表单,但现在您无法控制表单的行为。默认设置通常是针对请求页面URL的操作后表单

问题是,您可能不知道在JQuery中使用什么选择器来获取对表单的引用。。。但是我想
$(“form”)
会起作用

单击“提交”按钮而不是“取消”按钮时进行验证

该插件拦截并运行表单的提交事件。通常,“取消”按钮是html输入元素,其类型属性设置为“重置”:


重置类型按钮不会导致表单提交,也不会触发验证


如果使用其他按钮类型,请确保onclick甚至返回false。这将取消表单的提交操作,但仍允许您在单击按钮时运行自己的javasctipt

表单是告诉浏览器将数据发送到何处的方式。如果没有一个控件,这些控件是无用的……除非你假装在JavaScript中有一个表单,这违反了规则2:问题的第二部分如何,例如,只验证是否单击了提交按钮。我有一个“取消”按钮,单击该按钮时,不应执行任何操作,但它仍然会验证表单。您正在进行完整的回发吗?比如,如果你的取消按钮只是清除了字段,为什么要将其设置为提交按钮?而不是按钮?如果你按我的按钮,我不认为它会触发验证。您可以使它们同时成为两个按钮,在一个按钮中它将调用submit方法(您将在jquery中启用)。接下来,我们将使用jquery验证附带的valid()方法。通过这种方式,你可以像ajax帖子一样进行操作。我使用了一个asp:按钮来取消和提交。我实际上已经解决了第二部分。我将cancel按钮的UseSubmitBehavior属性设置为false,使其成为常规的输入类型=按钮,而不是类型=提交,从而解决了问题。我决定使用LiveValidation脚本。它工作得很好。谢谢你的帮助。
<input type="reset" value="cancel" />