发现哪个表单按钮触发提交

goh*_*goh 6 javascript jquery

在我的表单中,我有两个提交按钮.

<input type="submit" name="save" value="Save as draft"/>
<input type="submit" name="send" value="Start sending" />
Run Code Online (Sandbox Code Playgroud)

现在,在将表单提交回服务器之前,我想根据单击的按钮执行特定任务.

$('form').submit(function(){
    if submit equals save
       task 1;
    elseif submit equals send
       task 2               
}
Run Code Online (Sandbox Code Playgroud)

如何查看按下了哪个按钮?

Hur*_*ile 5

如果是我,我会以不同的方式做到这一点.我会做的事情 -

<button type='button' id='formSave'>Save as draft</button>
<button type='button' id='formSend'>Start Sending</button>

$('#formSave').click(function(){
    //submit form
    //task 1
});

$('#formSend').click(function(){
    //submit form
    //task 2
});
Run Code Online (Sandbox Code Playgroud)

我只是根据你的按钮名称和什么来做出答案,但听起来你想要做一些类似的事情.

  • 这打破了非JavaScript支持.请写下不引人注目的JavaScript. (3认同)
  • @JohnP Ok"UnObtrusive JS"=保持html&js分开."渐进增强"= JS仅增强现有功能.得到它了. (2认同)

Ray*_*nos 5

$(":submit").click(function() {
    $("form").data("submit-button", this.name);
});

$("form").submit(function() {
    var button = $(this).data("submit-button");
    ...
});
Run Code Online (Sandbox Code Playgroud)

在存储名称的提交按钮上添加单击处理程序.然后在提交处理程序中提取该名称.

  • @MarcelKorpel因为当您通过其他方法(如按ENTER)提交表单时,逻辑不会运行. (2认同)