当有2个提交值时,如何在javascript中提交表单中的值?

时间:2011-11-21 10:31:42

标签: javascript jquery

我有一个表单,其中有2个输入,这些是提交类型的输入。

<form>
    <input type="text" name="payee" value="">
    <input type="text" name="amount" value="">
    <input type="text" name="date" value="">
    <input type="submit" name="deposit" value="Distribute">
    <input type="submit" name="distribute" value="Deposit">
</form>

在这样的jQuery中:

$("form submit").click(function() {
    // i wrote code.
}

如果我点击deposit按钮,应该会执行某些操作。如果我点击distribute按钮,则应该执行其他一些操作。

4 个答案:

答案 0 :(得分:5)

首先,您需要将submit输入更改为按钮(或至少其中一个),因为1个表单中的2个提交按钮无效。然后为每个按钮指定“自己的Id

<input type="button" name="deposit" value="Distribute" id="distribute">
<input type="button" name="distribute" value="Deposit" id="deposit">

然后,在jQuery中,您可以使用每个按钮的Id在单击时运行特定代码,如下所示:

$("#distribute").click(function() {
    // code to run when distribute is clicked
}
$("#deposit").click(function() {
    // code to run when deposit is clicked
}

答案 1 :(得分:1)

尝试使用jQuery submit()函数,如下所示:

$('#deposit').submit(function(){
  //Code to run
});

最好是因为如果某个字段错误,您可以取消客户端事件。

http://api.jquery.com/submit/

你不需要一个插件来做,但是有很多: http://www.designyourway.net/blog/resources/55-jquery-form-plugins-to-download-and-use/

答案 2 :(得分:0)

插入另一种输入类型:

<input type="hidden" name="hf" id="hf" value="">

$("form :submit").click(function() {
  if ($(this).attr('id')=='distribute') $("#hf").val('sent by distribute');
else $("#hf").val('sent by deposit');
}

在服务器中,您可以通过读取hiddenField值(hf)

来查看发送者

答案 3 :(得分:0)

您可以在document.ready函数中的按钮上添加自定义属性,然后单击按钮,您可以识别哪个按钮已发布请求以进行表单。

添加自定义属性的示例

<input type="submit" id="deposit" value="Distribute">
<input type="submit" id="distribute" value="Deposit">


$(function () {
$("#deposit").attr('isDeposit','1');
$("#distribute").attr('isDeposit','0');

});

并在提交时单击

$("form submit").click(function()
{
var identifyButton = $(this).attr('isDeposit');
}

有点像这样。