2014-06-26 138 views
0

这里是我的HTML:提交通过jQuery的表单提交删除输入变量

<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

+0

var2是提交按钮,你只会得到var1这不是问题。 –

+0

var2是一个提交按钮,它不会发布值,你需要添加另一个输入类型隐藏/文本等 –

回答

1

尝试:method="post"在形式上或使用<button type="submit"></button>

+1

已经有一个提交按钮在窗体中。 – RobG

1

的表格应提交,只有当它被点击提交表单提交按钮的值(见HTML5 4.10.22.4 Constructing the form data set)。调用提交方法不会单击该按钮,因此它不会提交该值。

您发布的代码将无限提交表单,谢谢。

你到处都可以调用按钮点击方法,但可能无法正常工作(即提交按钮的值):

<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表明,使用方法=如果POST适合。

+0

“您发布的代码将无止境地提交表单,谢谢”不,它不会 - 除非您修改我发布的代码,如果您已经完成了这些操作,那么我不能对此负责。如果设置了$ _GET ['var1']',它会回显'print_r'输出。 – neubert

+0

复制并粘贴到浏览器中,$(“#test”)。submit();'提交表单,重新加载页面,提交表单... – RobG

+0

这就是为什么我在http://www.frostjedi提供的现场演示如果设置了$ _GET ['var1'],则退出.com/terra/dev/submit.php。我发布的代码只是为了给我想要做的概念概述。如果我要抛出现场演示的PHP代码,可能会让不熟悉PHP的人感到困惑。由于这个问题最终不是PHP的问题... – neubert

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()发送按钮的价值,因为不是由按钮本身触发。

希望它有帮助!