42

チェックボックスがチェックされているときにフォームを送信する方法はありますか?

<form id="formName" action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">
    <input type ="checkbox" name="cBox[]" value = "3">3</input>
    <input type ="checkbox" name="cBox[]" value = "4">4</input>
    <input type ="checkbox" name="cBox[]" value = "5">5</input>
    <input type="submit" name="submit" value="Search" />
</form>

<?php
    if(isset($_GET['submit'])){
        include 'displayResults.php';
    }
?>

それが私が現在持っているものですが、ユーザーがチェックボックスをオンまたはオフにしたときに、送信ボタンなしでフォームを送信したいと思います。何か助けはありますか?

4

6 に答える 6

95

onChange入力タグに属性を追加して JavaScript を使用する

<input onChange="this.form.submit()" ... />
于 2012-05-15T14:06:43.833 に答える
24

はい、可能です。

<form id="formName" action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">
    <input type ="checkbox" name="cBox[]" value = "3" onchange="document.getElementById('formName').submit()">3</input>
    <input type ="checkbox" name="cBox[]" value = "4" onchange="document.getElementById('formName').submit()">4</input>
    <input type ="checkbox" name="cBox[]" value = "5" onchange="document.getElementById('formName').submit()">5</input>
    <input type="submit" name="submit" value="Search" />
</form>

各チェックボックスに追加onchange="document.getElementById('formName').submit()"することで、チェックボックスが変更されるたびに送信されます。

jQuery に慣れている場合は、さらに簡単です (そして目立たない):

$(document).ready(function(){
    $("#formname").on("change", "input:checkbox", function(){
        $("#formname").submit();
    });
});

フォーム内の任意の数のチェックボックスについて、「変更」イベントが発生すると、フォームが送信されます。メソッドのおかげで、より多くのチェックボックスを動的に作成する場合でも、これは機能します.on()

于 2012-05-15T14:08:07.577 に答える
4

私はこれを約4時間いじっていましたが、これをあなたと共有することにしました.

チェックボックスをクリックしてフォームを送信できますが、奇妙なことに、php で送信を確認するときに、チェックボックスをオンまたはオフにするとフォームが設​​定されると予想されます。しかし、これは正しくありません。実際にチェックボックスをオンにした場合にのみフォームが設​​定され、チェックを外すと設定されません。チェックボックスの入力タイプの最後にある単語がチェックされていると、チェックボックスがチェックされているように表示されるため、フィールドがチェックされている場合は、以下の例のようにそれを反映する必要があります。チェックが外されると、phpはフィールドの状態を更新し、チェックされた単語が消えます。

HTML は次のようになります。

<form method='post' action='#'>
<input type='checkbox' name='checkbox' onChange='submit();'
<?php if($page->checkbox_state == 1) { echo 'checked' }; ?>>
</form>

そしてphp:

if(isset($_POST['checkbox'])) {
   // the checkbox has just been checked 
   // save the new state of the checkbox somewhere
   $page->checkbox_state == 1;
} else {
   // the checkbox has just been unchecked
   // if you have another form ont the page which uses than you should
   // make sure that is not the one thats causing the page to handle in input
   // otherwise the submission of the other form will uncheck your checkbox
   // so this this line is optional:
      if(!isset($_POST['submit'])) {
          $page->checkbox_state == 0;
      }
}
于 2016-04-15T09:58:22.663 に答える
3
$(document).ready(
    function()
    {
        $("input:checkbox").change(
            function()
            {
                if( $(this).is(":checked") )
                {
                    $("#formName").submit();
                }
            }
        )
    }
);

各チェックボックスにクラスを追加して実行する方がおそらく良いでしょうが

$(".checkbox_class").change();

すべてのチェックボックスがフォームを送信するのではなく、どのチェックボックスがフォームを送信するかを選択できるようにします。

于 2012-05-15T14:15:57.300 に答える
1

JavaScriptの簡単な方法で、チェックボックスをクリックするだけでフォームを送信できます。form タグまたは Input 属性内に、次の属性を追加します。

    onchange="this.form.submit()"

例:

<form>
      <div>
           <input type="checkbox">
      </div>
</form>
于 2021-01-21T14:54:27.547 に答える