我有一个带有选择和几个文本输入的表单。我想要在更改选择时提交表单。使用以下方法可以正常工作:
onchange="this.form.submit()"
但是,如果表单还包含提交按钮,则更改选择时表单不会提交。我猜是某种冲突。
我有什么选择?
我应该使用类似的东西
$(this.form).trigger("submit")
代替?
答案 0 :(得分:53)
你应该可以使用类似的东西:
$('#selectElementId').change(
function(){
$(this).closest('form').trigger('submit');
/* or:
$('#formElementId').trigger('submit');
or:
$('#formElementId').submit();
*/
});
答案 1 :(得分:25)
我的通灵调试技巧告诉我,您的提交按钮名为submit
因此,form.submit
指的是按钮而不是方法。
将按钮重命名为其他内容,以便form.submit
再次引用该方法。
答案 2 :(得分:10)
如果你正在使用jQuery,那就像这样简单:
$('#mySelect').change(function()
{
$('#myForm').submit();
});
答案 3 :(得分:5)
有几种方法可以完成。
元素知道它们属于哪种形式,因此您不需要在jquery中包装this
,只需调用返回表单元素的this.form
即可。然后,您可以在表单元素上调用submit()
来提交它。
$('select').on('change', function(e){
this.form.submit()
});
文档:https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement
答案 4 :(得分:0)
使用jQuery绑定它们并让jQuery处理它:http://jsfiddle.net/ZmxpW/。
$('select').change(function() {
$(this).parents('form').submit();
});
答案 5 :(得分:0)
使用:
<select onchange="myFunction()">
function myFunction() {
document.querySelectorAll("input[type=submit]")[0].click();
}