jquery通过单击复选框提交表单不起作用
单击复选框时应提交表单,但不会发生。一个简单的警报(作为一个测试)确实有效。它出错了哪里?jquery通过单击复选框提交表单不起作用
HTML
<form id="formId" name="formName" action="index.php" method="post">
<input name=entry>
<input type="checkbox" class="checkbox1">1
<input type="checkbox" class="checkbox2">2
<input type="checkbox" onclick="this.form.submit();">5
<input type="submit" name="submit" >
</form>
JS
<script type="text/javascript">
$(document).ready(
function(){
$(".checkbox1").click(
function(){
alert('checkbox 1 clicked');
}
)
$(".checkbox2").click(
function(){
$('#formId').submit();
}
)
}
);
</script>
改变 “点击” 到 “变” - 我同意 “点击” 应该工作,但它并不总是对我来说=/
当天你就在这里!即将说出同样的话!第二个答案你也打我,大声笑 – SpYk3HH 2014-09-05 13:08:35
谢谢,我试过了,但那不是。 – user4011806 2014-09-05 15:07:58
忽略下面的第一个问题,我可以看到您的表单不会从提交按钮以外的任何按钮提交。
我的解决方法是trigger
一个click
事件对你的提交按钮,而不是试图与.submit()
提交表单:
例如http://jsfiddle.net/tkdxg66m/1/
$(".checkbox2").click(
function(){
$('#submitme').trigger('click');
}
)
这是非常奇怪的行为,因为submit()
应该工作,所以我期待作进一步调查。
年长的答案/以下问题:
你包裹在一个函数的代码不会被调用:
你可能意味着使用DOM准备处理程序是这样的:
$(function(){
$(".checkbox1").click(
function(){
alert('checkbox 1 clicked');
}
)
$(".checkbox2").click(
function(){
$('#formId').submit();
}
)
});
说明:$(function(){your code});
是一个快捷方式$(document).ready(function(){your code});
或执行这样的IIFE(立即调用函数表达式):
(function(){
$(".checkbox1").click(
function(){
alert('checkbox 1 clicked');
}
)
$(".checkbox2").click(
function(){
$('#formId').submit();
}
)
})();
的DOM准备选项使得在这种情况下:)
只需使用下面的jQuery代码更有意义。它将用于提交表单。
$(document).ready(function(e) {
$(".checkbox2").click(
function(){
$("#formId").submit();
}
);
});
用JSFiddle中的代码尝试他的表单HTML ...它不提交..确实很奇怪。 – 2014-09-05 13:33:10
究竟是什么区别?为了简化原因,我最初留下了document.ready代码。我已更新了我的原始帖子。上面的代码是完整的。 – user4011806 2014-09-05 15:14:37
Waddayaknow,问题解决了! 事情是:我命名提交按钮“提交”。这会导致问题。我发现这在其他stackoverflow线程; (submit a form using checkbox)和:(Javascript form submit: Object doesn't support this property or method (IE7))。无论如何,感谢您的贡献。
我还没有看到你添加过任何jQuery库。你是? – 2014-09-05 13:07:26
我有点困惑,你是如何得到警戒的工作吗?代码写入的方式不应该起作用。假设我的回答是正确的,我会等待更新(您可能已经忽略了其余的代码)。 – 2014-09-05 13:14:31
这件事情还有些奇怪(仍然在寻找)。我的解决方法(如下)是在单击复选框时触发提交按钮。这提交得很好。 – 2014-09-05 13:34:47