0

HTML 5 は生活を楽にしますが、残念ながら古いブラウザーでは動作しません。HTML 5 を使用する最新のブラウザーで正しく動作するフォームがありますが、古いブラウザーと互換性のあるソリューションが必要です。

<p>
<input name="array[]" type="checkbox" value="a1" form="myform" class="checkbox"/> a1<br />
<input name="array[]" type="checkbox" value="b1" form="myform" class="checkbox"/> b1<br />
<input name="array[]" type="checkbox" value="c1" form="myform" class="checkbox"/> c1<br />
</p>

<form id="myform" method="POST" action="test.php">
  <input type="submit" value="Send" />
</form>

チェックボックスの数は動的に生成され、どのフォーム タグにも配置できません。フォーム「myform」で送信時にチェックボックスの値を渡す必要があります。上記の例は、html 5 ブラウザーでは機能しますが、古いブラウザーでは機能しません。

IE 7 などの古いブラウザでこれを機能させるにはどうすればよいですか?

jQueryでできますか?助言がありますか?

4

1 に答える 1

0

次のように、非表示の入力を作成し、チェックボックスの現在の値を使用して、jQuery で送信する前にフォームに追加できます。

$('#myform').on('submit', function (e) {
    $form = $(this);

    $('input[type=checkbox]:checked').each(function (index, elem) {
        var val = $(elem).val(),
            name = $(elem).attr('name');

        var hiddenInput = $('<input type="hidden" value="' + val + '" name="' + name + '"/>');
        $form.append(hiddenInput);
    });
});
于 2013-04-13T16:08:20.540 に答える