JQuery验证 - 复选框验证未发布所有值

时间:2013-05-17 15:50:37

标签: javascript jquery ajax validation

我遇到了一些复选框验证问题。 我正在使用插件验证:http://bassistance.de/jquery-plugins/jquery-plugin-validation/

我有三个复选框,至少有一个必须勾选。这些复选框的初始表单代码是:

<input type="checkbox" checked name="check_options" value="News">News
<input type="checkbox" checked name="check_options" value="Events">Events
<input type="checkbox" checked name="check_options" value="Promotions">Promotions

验证规则是:

$("#commentForm").validate({
            rules: {
                email_options_name: {
                    required: true
                },
                email_options_company: {
                    required: true
                },
                email_options_country: {
                    required: true
                },
                email_option_email: {
                    required: true,
                    email: true
                },
                check_options: {
                    required: true,
                    minlength: 1
              }
            },      
        });

check_options的验证工作正常。但是,处理表单的php脚本只会打印最后一个复选框的值(因此如果勾选了两个或三个,则只发布最后一个值)。

我修改了输入名称以解决此问题:

<input type="checkbox" checked name="check_options[]" value="News">News
<input type="checkbox" checked name="check_options[]" value="Events">Events
<input type="checkbox" checked name="check_options[]" value="Promotions">Promotions

这显示了帖子中的所有值。但是,我无法让验证工作。如果我遵守我的规则:

check_options[]: {
                required: true,
                minlength: 1
          }

我收到一个Javascript错误:SyntaxError:missing:属性id

之后

如果我不使用方括号,则不会进行验证。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

像这样使用HTML:

<input type="checkbox" checked name="check_options[]" value="News" required minlength="1">News
<input type="checkbox" checked name="check_options[]" value="Events">Events
<input type="checkbox" checked name="check_options[]" value="Promotions">Promotions

和javascript-

 check_options: {
            required: true,
            minlength: 1
      }