是.submit()丢失提交类型的输入名称

时间:2012-07-13 09:46:22

标签: jquery forms

我很想知道,我的表单上有2个输入提交。 一个人有一个名字:

<input name="_close" type="submit" id="myId" value="close">

当我点击它时,我通过(在用JS做事之后)提交表格

$('#myForm').submit();

然后在我的服务器代码中,我在Request上测试它是否有query“_ close”但似乎并非如此。

我的问题是: 有没有办法让jQuery方法.submit()保留点击的输入按钮的名称,或者在我的下一个请求中手动指定.submit()函数我想要的额外参数?

感谢。

2 个答案:

答案 0 :(得分:2)

我不确定提交按钮以及如何/如果它们被传递但是如果它们不是你可以在你的预提交javascript中将值分配给同名的隐藏输入。

我刚给你做了一个例子。

<强>的test.html

<form action="test.php" action="POST" >
    <input type="submit" name="submitButton" value="Click me to submit" />
</form>

<强> test.php的

<?php
    echo $_POST['submitButton'];
?>

回复点击我提交

然后我使用jquery中的submit函数进行了另一个测试,该函数没有传递值。

原因是您可以测试服务器端按下了提交按钮,因为您可能在表单上有多个提交按钮。通过检查该值,您可以测试用于提交表单的具体内容。

要允许您将外部输入用作特定的提交按钮,以便在请求中传递其名称/值对,而不是在jquery中的表单上调用submit(),请选择提交按钮本身并调用click()就可以了。这将告诉表单使用了特定的提交按钮,因此在请求中设置了它的值。

答案 1 :(得分:2)

而不是

$('#myForm').submit()

尝试

$('#myId').click();

这将使您的表单提交同时您可以识别触发表单提交的按钮。

相关问题