这是我的HTML:
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="test" method="get" action="">
<input type="hidden" name="var1" value="true" />
<input type="submit" name="var2" value="submit" />
</form>
<script>
$("#test").submit();
</script>
结果请求中包含var1而不是var2。我的问题是为什么以及如何才能获得var2?
这是一个现场演示:
答案 0 :(得分:1)
尝试:method="post"
表单或使用<button type="submit"></button>
答案 1 :(得分:1)
只有在单击提交表单时,表单才会提交提交按钮的值(请参阅HTML5 4.10.22.4 Constructing the form data set)。调用submit方法不会单击该按钮,因此它不会提交值。
您发布的代码将无休止地提交表单,谢谢。
您可以调用按钮的单击方法,但这可能无法正常工作(即提交按钮的值):
<form id="test" method="get" action="">
<input type="hidden" name="var1" value="true">
<input type="submit" name="var2" value="submit">
</form>
<button onclick="$('#test')[0].var2.click()">submit form</button>
或者,正如user3701524建议的那样,如果适合,请使用 method = post 。
答案 2 :(得分:0)
按钮上的值仅在您实际点击该按钮时提交。为了使一切顺利,我建议绑定到
$('form').on('submit', function(e) {
// here you have the button value if it was clicked.
e.preventDefault(); // optional this prevent default submission.
});
无论哪种方式,调用$('form').submit()
都会不发送按钮值,因为按钮本身不会触发。
希望它有所帮助!