Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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验证插件复选框errorPlacement_Jquery_Validation_Checkbox_Errorplacement - Fatal编程技术网

jQuery验证插件复选框errorPlacement

jQuery验证插件复选框errorPlacement,jquery,validation,checkbox,errorplacement,Jquery,Validation,Checkbox,Errorplacement,我有一组复选框,它们都有相同的名称。他们都有不同的价值观。它们只是表单的一部分。它们并不构成整个表单。我希望复选框在该组的最后一个复选框之后显示其错误 可以在jQuery中执行类似的操作吗 $("#myform").validate({ errorPlacement: function(error, element) { var checkboxes = $("#checkboxes"); if(checkboxes.contains(element))

我有一组复选框,它们都有相同的名称。他们都有不同的价值观。它们只是表单的一部分。它们并不构成整个表单。我希望复选框在该组的最后一个复选框之后显示其错误

可以在jQuery中执行类似的操作吗

$("#myform").validate({
  errorPlacement: function(error, element) {
     var checkboxes = $("#checkboxes");
     if(checkboxes.contains(element))
        label.insertAfter(checkboxes[checkboxes.length-1]);
   },
   debug:true
 })
我该怎么做呢

谢谢,
伊恩·麦卡洛

你就不能这么做吗

if(checkboxes.contains(element)) {
  checkboxes.after(label);
}

变量“label”在代码中的作用是什么

您不应该使用“error”变量吗

error.insertAfter(checkboxes[checkboxes.length-1]);

我意识到这是一个较老的问题,但我需要在表单上使用类似的功能并解决了它

使用jQuery 1.4.2

因此,给出以下形式

<form id="checkForm" method="get" action="">
<ul id="checkboxes">
    <li><input type="checkbox" name="checkOne" id="checkOne" value="1" /></li>
    <li><input type="checkbox" name="checkTwo" id="checkTwo" value="2" /></li>
    <li><input type="checkbox" name="checkThree" id="checkThree" value="3" /></li>
</ul>
<input class="submit" type="submit" value="Submit"/>

这里有一个通用的解决方案,可以处理页面上的所有复选框。它将在组的最后一个复选框后插入错误消息

$('form').validate({
    rules: {
        checkbox_group_1: {
            required: true
        },
        checkbox_group_2: {
            required: true,
        }
    },
    errorPlacement: function(error, element) {
        if (element.is(':checkbox'))
            error.insertAfter($('input[name=' + element.attr('name') + ']').last());
        else
            error.insertAfter(element);
    }
});

这似乎不起作用。我没有收到来自客户端的错误,但也没有收到错误消息。另外,表单将不会提交。您是否可以尝试在jsbin.com上创建一个示例测试页面?通过该问题进行调试将更容易。此示例几乎可以正常工作。我只需要在
元素.attr('name')
部分前后添加双引号。它试图找到
input[name=attribute]
而不是
input[name=“attribute”]
@mckenna。它们都应该有效(有引号和没有引号),但我觉得有趣的是,它只适用于有引号的用户。
$('form').validate({
    rules: {
        checkbox_group_1: {
            required: true
        },
        checkbox_group_2: {
            required: true,
        }
    },
    errorPlacement: function(error, element) {
        if (element.is(':checkbox'))
            error.insertAfter($('input[name=' + element.attr('name') + ']').last());
        else
            error.insertAfter(element);
    }
});