通过jquery提交表单会删除提交输入变量

时间:2014-06-26 03:31:08

标签: javascript jquery html form-submit html-form

这是我的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?

这是一个现场演示:

http://www.frostjedi.com/terra/dev/submit.php

3 个答案:

答案 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()都会发送按钮值,因为按钮本身不会触发。

希望它有所帮助!