1

我已经设置了一个页面,其中包含两个链接,这些链接的样式看起来像按钮 - 保存和保存并分配:

<a id="submit" title="Save">Save</a>
<a id="submit_assign" title="Save & Assign">Save & Assign</a>

我正在使用 JQuery 来捕获每个按钮的单击事件并执行 FORM 提交:

$(document).ready(function() {  
    $('#submit').click(function(){
        $(this).parents('form').submit();
    });

    $('#submit_assign').click(function(){
        $(this).parents('form').submit();
    });  

    $("#main_form").on("submit", function (event) {
        //call save function
        //if button clicked was submit_assign, call assign function
    });
});

两个按钮都需要执行相同的基本功能(即保存),但保存和分配按钮需要在成功保存后进行额外处理。我想确定是哪个按钮导致表单提交,以便我可以使用它来查看是否需要额外处理。我的第一直觉是尝试通过点击中的提交函数调用传递一个变量,但我不确定如何在实际的提交函数中访问它。

4

2 回答 2

3

编辑

为此,<a>您只需在表单中设置隐藏输入的值

<a id="submit_1">Submit</a>
<a id="submit_2">Save</a>


<form>
    <input type="hidden" name="submit" value="" />
</form>

jQuery:

$("#submit1").on("click", function(){
    $('input[name="submit"]').val("submit");
}
$("#submit1").on("click", function(){
    $('input[name="submit"]').val("save");
}

旧答案

HTML:

<form>
    <input type="Submit" name="submit_1" value="submit_1"/>

    <input type="submit" name="submit_2" value="submit_2"/>
</form>

PHP

if(isset($_GET['submit_1'])){
    // submit one was clicked
}
elseif(isset($_GET['submit_2'])){
    /submit two was clicked
}
于 2013-04-08T15:34:18.680 回答
0

如果您的提交按钮是实际<input type="submit">按钮,您可以为它们分配namevalue属性,这些按钮将与表单的其余部分一起传递:

<input type="submit" id="submit" name="submit" value="Save">
<input type="submit" id="submit_assign" name="submit" value="Save and Assign">

否则,为什么不在<input type="hidden">处理提交之前创建新的表单元素呢?

$('#submit_assign').click(function(){
    var hidden = '<input type="hidden" name="something" value="somethingelse">';
    $(this).parents('form').append(hidden).submit();
});  
于 2013-04-08T15:35:05.597 回答