1

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

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

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

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

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

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

谢谢。

4

2 回答 2

2

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

我刚刚为您运行了一个示例。

测试.html

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

测试.php

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

这确实回声点击我提交

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

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

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

于 2012-07-13T09:49:56.373 回答
2

代替

$('#myForm').submit()

尝试

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

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

于 2012-07-13T10:11:04.043 回答