Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对container.validate()而不是form.validate()进行Jquery验证_Jquery_Umbraco_Jquery Validate - Fatal编程技术网

对container.validate()而不是form.validate()进行Jquery验证

对container.validate()而不是form.validate()进行Jquery验证,jquery,umbraco,jquery-validate,Jquery,Umbraco,Jquery Validate,我们正在建立一个新的umbraco网站,其中包含许多注册表单,我们正在使用Jquery验证插件验证这些表单 由于每个usercontrol(宏)都包含服务器标记,因此我们必须在每个usercontrol中使用一个表单来进行JQuery验证 但是,由于我们在每个usercontrol中使用一个表单,因此无法在一个页面中添加多个控件 我们要做的是在母版页中添加一个带有runat=“server”的表单标记,然后使用某个容器进行所有验证。validate();而不是form.validate() 像这

我们正在建立一个新的umbraco网站,其中包含许多注册表单,我们正在使用Jquery验证插件验证这些表单

由于每个usercontrol(宏)都包含服务器标记,因此我们必须在每个usercontrol中使用一个表单来进行JQuery验证

但是,由于我们在每个usercontrol中使用一个表单,因此无法在一个页面中添加多个控件

我们要做的是在母版页中添加一个带有runat=“server”的表单标记,然后使用某个容器进行所有验证。validate();而不是form.validate()

像这样的东西

<script type="text/javascript>

    $('#regForm').validate();

</script>


<div id="regForm">

  <input type="text" class="required" name="Name" id="txtName" runat="server"/>

</div>

验证插件需要将要验证的各个字段包含在一组
标记中

但是,您可以在不必“提交”表单的情况下进行验证。例如,它仍然可以通过
onkeyup:
onfocusout:
处理程序来实现

因此,如果您可以简单地将
更改为类似
的内容,那么您就可以进行验证

编辑:

,唯一需要的
表单
属性是
操作
,因此没有理由不能用此属性替换

<form id="regForm" action="#"> </form>


默认情况下,asp.net只能有一个带有runat=“server”的表单。但是,正如Sparky的回答所示,页面上可以有多个表单。有关asp.net中多种表单的更多信息,请参见此处:。

这是一个迟来的答案,但鉴于现有答案均未被接受,以下是我对此的看法。我遇到了一个类似的情况,我需要验证一个模态对话框表单中包含的div。下面是我如何解决它的

<script type="text/javascript>
  jQuery(function($) {
    $('form').validate();

    $('.continue').click(function() {
        var isValid = true;
        var $div = $(this).closest("div");
        $div.find(":input").each( function() {
           isValid = $(this).valid() && isValid;
        });
        if ( isValid ) {
           var $next = $div.hide().next('div');
           if ( $next.length == 0 ) {
              $(form).submit();
           } else {
              $next.show();
           }
        }
    });
  });
</script>

<form action="#">
    <div id="div1">
       <input type="text" required name="Name" id="txtName"        runat="server"/>
       <button class="continue">Continue</button>
    </div>
    <div id="div2">
       <input type="text" required name="Address" id="txtAddress" runat="server"/>
       <input type="text" required name="City" id="txtCity" runat="server"/>
       <input type="text" required name="State" id="txtState" runat="server"/>
       <input type="text" required name="Zip" id="txtZip" runat="server"/>
       <button class="continue">Continue</button>
    </div>
</form>

@Sparky672:我想要的是在某个容器上执行验证。validate()而不是form.validate();那么问题是什么?你能做到吗?答案是否定的。。。它需要字段位于
中。请看下面我的答案。是的,我知道。。但是我们正在寻找一种方法来在div.validate()上进行验证,因为这样可以避免页面中出现多个表单。谢谢你的回答。@mahesh,我完全理解你的问题,但答案仍然是一样的。。。验证器需要一个
@mahesh,没有理由在一个页面上避免多个
。请通过@Gary.sb查看我的编辑和回答,但此处使用的所有表单都带有runat=“server”,但我们不能在一个页面中添加带有runat=“server”的多个表单。另外,如果我们在母版页中添加一个带有runat=“server”的表单,那么所有其他表单都会出现在这个表单中,我认为这种嵌套是针对html的rules@mahesh,没有其他方法可以让验证器在没有表单的情况下工作。我已经提供了唯一可能的解决方案。但是这里使用的所有表单都带有runat=“server”,但是我们不能在一个页面中添加多个带有runat=“server”的表单。另外,如果我们在母版页中添加一个带有runat=“server”的表单,那么所有其他表单都会出现在这个表单中,我认为这种嵌套是针对html的rules@mahesh,请阅读此答案中的链接。它告诉您如何在页面上放置多个表单。没有其他方法可以让验证器工作。