选中复选框时提交表单

时间:2012-05-15 14:04:03

标签: php javascript forms search checkbox

是否有方法在选中复选框时提交表单?

<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';
    }
?>

这就是我目前所拥有的,但是当用户选中或取消选中复选框时,我想在没有提交按钮的情况下提交表单。有什么帮助吗?

6 个答案:

答案 0 :(得分:58)

在简单的JavaScript中简单地放

onChange="this.form.submit()"

进入表单/输入标记。

答案 1 :(得分:13)

是的,这是可能的。

<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();
    });
});

对于表单中的任意数量的复选框,当&#34;更改&#34;事件发生,表单已提交。如果您使用.on()方法动态创建更多复选框,这甚至可以使用。

答案 2 :(得分:3)

$(document).ready(
    function()
    {
        $("input:checkbox").change(
            function()
            {
                if( $(this).is(":checked") )
                {
                    $("#formName").submit();
                }
            }
        )
    }
);

虽然为每个复选框添加类可能会更好,但

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

这样您就可以选择提交表单的复选框而不是所有表单。

答案 3 :(得分:2)

我已经搞乱了大约四个小时,并决定与你分享。

您可以通过单击复选框提交表单,但奇怪的是,在检查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;
      }
}

答案 4 :(得分:1)

您可以通过 JavaScript 中的简单方法单击复选框来提交表单。 在表单标签或 Input 属性中添加以下属性:

    onchange="this.form.submit()"

示例:

<form>
      <div>
           <input type="checkbox">
      </div>
</form>

答案 5 :(得分:0)

选中复选框时提交表单

$(document).ready(function () {   
$("#yoursubmitbuttonid").click(function(){           
                if( $(".yourcheckboxclass").is(":checked") )
                {
                    $("#yourformId").submit();

                }else{
                    alert("Please select !!!");
                    return false;
                }
                return false;
            }); 
});