如何识别单击提交按钮时的ID或值

时间:2011-05-03 14:27:09

标签: forms jquery

在使用AJAX点击并提交后,我无法识别提交按钮的特定值或ID。

如果我将以下代码作为全局函数放置,它会正确警告单击按钮的值:

$(":submit").live('click', function() {
alert($(this).val());
})

但是,当我尝试定义变量时,我无法在成功回调函数中使用该变量:

$(":submit").live('click', function() {
var whichButton =  $(this).val();
})

...
$("#applicant-form").validate({
   function(form) {
      $(form).ajaxSubmit({
...
        success: alert(whichButton);

我也尝试将代码放在submitHandler中,但这也不起作用。

在一篇有点相关的帖子中,用户建议我放置以下代码:

$("#accordion .edit").click(function(){
window.lastButtonClicked = this;  
});

...
submitHandler: function(){
var index_origin = $(window.lastButtonClicked).attr("name");
}

但是我无法得到点按钮的值(它表示该值未定义)。

有什么建议吗?

更新:如果我提供有关我需要知道按哪个按钮的原因的详细信息,可能会有所帮助。我在多部分表单中为每个表单提供了两种提交按钮。我想根据点击的按钮做不同的事情。

1 个答案:

答案 0 :(得分:0)

$(":submit").live('click', function() {
var whichButton =  $(this).val();
})

whichbutton的范围在这个匿名函数中;你不能从别处访问它。快速修复可能是将whichbutton声明为全局变量,但可能很少会出现这种情况。关于你正在尝试做什么的更多背景会有所帮助,现在它看起来就像你在ajax表单提交后试图提醒成功时按钮文本。