是否有方法在选中复选框时提交表单?
<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';
}
?>
这就是我目前所拥有的,但是当用户选中或取消选中复选框时,我想在没有提交按钮的情况下提交表单。有什么帮助吗?
答案 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;
});
});