Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
jQuery验证表单错误并将其链接到各自的字段_Jquery_Jquery Validate - Fatal编程技术网

jQuery验证表单错误并将其链接到各自的字段

jQuery验证表单错误并将其链接到各自的字段,jquery,jquery-validate,Jquery,Jquery Validate,我正在使用jqueryvalidate,我将一个表单拆分为多个部分。在提交时,它将进行验证,我将返回包含所有错误的错误框方法。我希望能够将它们指定为链接,以便单击错误将用户带到该字段。可能是开箱即用的吗 js: 它生成的HTML如下所示: <div id="error_container"> <ul><li><label for="firstname" generated="true" class="error_two" style="displ

我正在使用jqueryvalidate,我将一个表单拆分为多个部分。在提交时,它将进行验证,我将返回包含所有错误的错误框方法。我希望能够将它们指定为链接,以便单击错误将用户带到该字段。可能是开箱即用的吗

js:

它生成的HTML如下所示:

<div id="error_container">
    <ul><li><label for="firstname" generated="true" class="error_two" style="display: inline;">Step 2: Your first name is required.</label></li></ul></div>

  • 第二步:需要您的名字。
如果可能的话,我希望这个链接回到firstname字段。谢谢

编辑:我知道我没有很好地解释自己。我希望它生成的HTML如下所示:

<div id=error_container">
    <ul>
        <li>
            <a href="link_to_field">Your first name is required.</a>
        </li>
    </ul>
</div>
  • 快速的方法是使用validate选项focusInvalid,它将把最后一个活动或第一个无效元素集中在submit上

    $('#form').validate({
       .
       focusInvalid: true,
       .
    });
    
  • 要实现您想要做的事情,还有很长的路要走,就是在validate选项中使用淋浴ROR回调

    $('#form').validate({
       .
       showErrors: function(errorMap, errorList) {
           // errorMap - the map of errors
           // errorList - array of errors
           // construct the list of error items with links that focus on the invalid elements
    
           // default behavior
           this.defaultShowErrors();
       },
       .
    }
    

Edit:刚刚意识到第二种方法在做什么。让我试试看。谢谢,太好了。奇怪的是,它仍然会生成标签,但单击它们确实会返回到相应的字段。添加一些悬停样式,它看起来与锚点完全相同。如果你把这个注释掉,
this.default阵雨rors(),将不显示默认标签。我不知道错误标签的这个特性实际上把你带回了它各自的字段。我的建议是尝试使用
errorMap
errorList
构建一个html无序列表,其中包含指向特定字段的链接。实际上,完全按照上述方式复制代码根本不会聚焦。我想这就是你说的你的意图。相反,它的工作方式正是我想要的,即连接标签和输入。就像通常单击标签可以将焦点放在相应的输入上一样,这也是在做同样的事情。所以,一旦我意识到它实际上是如何链接回字段的,我就意识到我确实想要保留标签。再次感谢你。
$('#form').validate({
   .
   showErrors: function(errorMap, errorList) {
       // errorMap - the map of errors
       // errorList - array of errors
       // construct the list of error items with links that focus on the invalid elements

       // default behavior
       this.defaultShowErrors();
   },
   .
}