我正在使用下面的javascript来提交一个id为PrimaryCatForm的表单,因为它形成了更清晰的代码冲突。
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 2</title>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript" >
$(document).ready(function() {
$('#PrimaryCatForm').on('change', function(){
this.submit()
});
});
//onChange="document.getElementById(\'PrimaryCatForm\').submit();"
</script>
<head>
表格似乎没有提交。
HTML表单
<form id="PrimaryCatForm" name="PrimaryCatForm" action="" method="post">
答案 0 :(得分:2)
submit()
是一个JS / jQuery方法,不是一个独立的函数(除非你定义它),所以你需要调用它&#34; on&#34;事:
$(document).ready(function() {
$('#PrimaryCatForm').on('change', function(){
$(this).submit();
});
});
在此处查看:
$(document).ready(function() {
$('#PrimaryCatForm').on('change', function() {
$(this).submit();
});
});
// ignore this part,
// this is just to prevent submitting in the snippet here
$('#PrimaryCatForm').on('submit', function() {
alert('calling form submit!');
return false; // prevent actual submitting
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<form id="PrimaryCatForm" action="">
<input type="text" name="name" />
</form>
&#13;
注意:如果您希望在每次更改时提交表单(例如,每个键入/删除的字符),您应该考虑onchange
以外的侦听器(当字段失去焦点时触发),如{{ 1}}将触发每个按下的键。
答案 1 :(得分:1)
表单元素没有“on change”事件,只有其输入字段:
var form = $("#PrimaryCatForm");
form.filter(':input').on("change", function() {
form.submit();
});
答案 2 :(得分:1)
this.submit()
确实有用。
$(function(){
$("#form1").change(function() {
console.log('A value in form has been changed');
this.submit();
});
})
<form id="form1">
<input type="text" name="test"/>
</form>
答案 3 :(得分:0)
为了完整性而发布答案只是为了解释您可以实际绑定到表单上的onchange
事件,因为事件冒泡。
但是,您的代码有点令人困惑,因为表单元素没有onchnage
个事件,但即使它仍然有效,因为onchange
事件冒泡到表单从内在形式元素。在这种情况下,您需要做的就是使用this
表单引用并调用它的提交方法:
$('#PrimaryCatForm').on('change', function() {
$(this).submit(); // or this.submit();
});