在我的表单中,我有两个提交按钮。
<input type="submit" name="save" value="Save as draft"/>
<input type="submit" name="send" value="Start sending" />
在将表单提交回服务器之前,我想根据点击的按钮执行特定任务。
$('form').submit(function(){
if submit equals save
task 1;
elseif submit equals send
task 2
}
如何查看按下了哪个按钮?
答案 0 :(得分: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
});
我只是根据你的按钮名称做出了我的答案,但是听起来你觉得你想做一些类似的事情。
答案 1 :(得分:5)
$(":submit").click(function() {
$("form").data("submit-button", this.name);
});
$("form").submit(function() {
var button = $(this).data("submit-button");
...
});
在存储名称的提交按钮上添加一个点击处理程序。然后在提交处理程序中提取该名称。
答案 2 :(得分:-1)
$('input').each(function(n) {
$(this).click( function() {
var name = $(this).attr('name');
if (name === 'save') {
// do stuff
}else if (name === 'submit'){
// do some other stuff
}
}
});
当然你也可以使用switch语句。
如果您要执行的工作复杂且方式不同,则应考虑使用2种不同的形式
我希望这能回答你的问题
修改强>
$('input:submit').click(function(n) {
var name = $(this).attr('name');
if (name === 'save') {
// do stuff
}else if (name === 'submit'){
// do some other stuff
}
}
});
答案 3 :(得分:-2)
我建议使用HurnsMobile的方法,但是如果你绝对需要一个函数来处理这两个按钮,你可以使用jQuery事件对象来检测按钮,
$('form').submit(function(event){
if(event.target.name == 'save') {
// do save task
} else if (event.target.name == 'send') {
// do send task
}
});