据我所知,以下是不可能的,如果不是,这是 jquery 的明显限制。
我想要一个带有两个提交按钮的 html 表单。无法提交表单并检测使用哪个按钮提交。
一种方法是使用 click(function() ,但这样做会失去对表单任何字段的访问权,并且无法引用表单。事实上,这种方法使用的链接看似是表单,但实际上不是!
在我看来这样的基本需求,怎么可能不支持。表单通常有两个提交选项……例如“提交”和“编辑”。任何一个选项都需要在提交和用户提交的表单数据时采取不同的操作?这怎么可能?
谢谢
只是一个例子。
<form action="action.php" method="post">
Enter a number: <input type="text" name="number" size="3"> <br>
<input type="submit" name="add" value="Add 10">
<input type="submit" name="subtract" value="Subtract 10">
</form>
<?php
// check which button was clicked
// perform calculation
if ($_POST['add'])
{
echo $_POST['number'] . " + 10 = " . ($_POST['number']+10);
} else if ($_POST['subtract']) {
echo $_POST['number'] . " - 10 = " . ($_POST['number']-10);
}
?>
我不完全确定您要使用两个提交按钮做什么。但是,如果它是您想要的字段中的数据,基于哪个按钮被按下,完全可以使用简单的逻辑来检测哪个按钮被单击,然后使用 jQuery 通过 ID 访问每个表单字段。
$('#btn1').click(function() { $('#field1').doSomething() });
$('#btn2').click(function() { $('#field1').doSomething() });
我在我的服务器上做了一个简单的测试:
<form method="POST" action="/test/post.php" target="_blank" id="form">
<input type="search" name="q" value="WTF" />
<input type="submit" name="b1" value="Search" />
<input type="submit" name="b2" value="Find" />
</form>
<button type="button" onclick="id('form').submit();">Go</button>
post.php
只是print_r($_POST);
一个. 结果如下:
按Search
:
Array
(
[q] => WTF
[b1] => Search
)
按Find
:
Array
(
[q] => WTF
[b2] => Find
)
按下:[Enter]
_<input type="search">
Array
(
[q] => WTF
[b1] => Search
)
使用<button>
外部:
Array
(
[q] => WTF
)