Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 validate-表单顶部和每个元素的错误消息_Jquery_Jquery Validate - Fatal编程技术网

jQuery validate-表单顶部和每个元素的错误消息

jQuery validate-表单顶部和每个元素的错误消息,jquery,jquery-validate,Jquery,Jquery Validate,我正在使用jQueryValidate插件,我想把错误放在无效表单元素旁边。但是,我也希望在表单顶部列出所有错误 选项设置似乎只允许您执行其中一项操作,但不能同时执行两项操作 因此,如果有一种方法可以设置选项,这样就可以轻松解决问题 为了解决这个问题,我编写了一段jQuery代码来获取错误消息并将它们添加到表单顶部(并将它们链接到错误位置)。但是,当我尝试在validate方法中调用此函数(使用invalidHandler或errorPlacement处理程序)时,一切正常,但表单被提交。我不

我正在使用jQueryValidate插件,我想把错误放在无效表单元素旁边。但是,我也希望在表单顶部列出所有错误

选项设置似乎只允许您执行其中一项操作,但不能同时执行两项操作

因此,如果有一种方法可以设置选项,这样就可以轻松解决问题


为了解决这个问题,我编写了一段jQuery代码来获取错误消息并将它们添加到表单顶部(并将它们链接到错误位置)。但是,当我尝试在validate方法中调用此函数(使用invalidHandler或errorPlacement处理程序)时,一切正常,但表单被提交。我不想提交表单,因为jQuery是用来验证客户端的

我的验证选项如下所示:

$("#memberRegistration").validate({
    invalidHandler: function(form, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {
            var message = errors == 1
                    ? 'You missed 1 field. It has been highlighted'
                    : 'You missed ' + errors + ' fields. They have been highlighted';
            $("div.errorBox span").html(message);
        }
        $("div.errorBox").removeClass('noDisplay');
        errorCopy();                   // <-- my custom function 
    },
    wrapper: "div",
    errorPlacement: function(error, element) {
        element = element.closest('li');
        element = element.children(':first-child');
        error.insertBefore(element);
        error.addClass('message');    
    },
    meta: "validate",
    rules: {
        "memberRegistrationFormDetails.Title": { required: true },
$(“#成员注册”)。验证({
invalidHandler:函数(表单、验证器){
var errors=validator.numberOfInvalids();
如果(错误){
var message=errors==1
?“您错过了1个字段。该字段已突出显示”
:“您错过了“+错误+”字段。它们已高亮显示”;
$(“div.errorBox span”).html(消息);
}
$(“div.errorBox”).removeClass('noDisplay');

errorCopy();//找到了一个解决方案。我直接将相关代码添加到errorPlacement处理程序,而无需从其他地方调用函数,并进行了一些修改:

 errorPlacement: function(error, element) {
        element = element.closest('li');
        element = element.children(':first-child');
        error.insertBefore(element);
        error.addClass('message');
        $(function() {                                 // my function
            var errorIndex = $(error).index('div');
            var errorId = 'errordiv' + errorIndex.toString();
            $(error).attr('id', errorId);
            $('.errorList').append('<li><a href="#' + errorId + '">' + $(error).text() + '</a></li>');
        });    
    },
errorPlacement:函数(错误,元素){
元素=元素。最近('li');
element=element.children(':first-child');
错误。insertBefore(元素);
error.addClass('message');
$(function(){//my function
var errorIndex=$(error.index('div');
var errorId='errordiv'+errorIndex.toString();
$(错误).attr('id',errorId);
$('.errorList')。追加('
  • '); }); },

    此代码接收错误消息并将其链接添加到表单顶部的“我的错误列表”容器中。

    您的页面上是否存在脚本错误?是否确定函数已定义?函数已定义,但我不确定是否找到了定义。总之,找到了另一个解决方案,如下所示。谢谢!