0

チェックボックスの検証に問題があります。これにはプラグイン検証を使用しています: http://bassistance.de/jquery-plugins/jquery-plugin-validation/

チェックボックスが 3 つあり、少なくとも 1 つをオンにする必要があります。これらのチェックボックスの最初のフォーム コードは次のとおりです。

<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 スクリプトは、最後のチェック ボックスの値のみを出力します (したがって、2 つまたは 3 つのチェック ボックスがオンになっている場合は、最後の値のみがポストされます)。

これを修正するために入力名を修正しました:

<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 : after property id

角括弧なしでそのままにしておくと、検証は行われません。

助けてくれてありがとう!

4

1 に答える 1

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
      }
于 2013-05-17T16:19:23.257 に答える