2011-05-03 61 views
0

我在使用AJAX單擊並提交後,無法識別提交按鈕的特定值或ID。如何識別單擊提交按鈕時的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"); 
} 

但我沒能拿到拿到按鈕的值點擊(它說,該值未定義)。

有什麼建議嗎?

UPDATE:如果我提供更多關於爲什麼我需要知道哪個按鈕被按下的信息,可能會有所幫助。對於每個表單,我有兩種類型的提交按鈕。我想根據點擊哪個按鈕來做不同的事情。

回答

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

whichbutton的範圍在這個匿名函數中;你無法從別處訪問它。快速解決可能是將whichbutton聲明爲全局變量,但可能很少有應該這樣做的情況。關於你想要做什麼的更多上下文會有所幫助,現在看起來就像你試圖在ajax表單提交之後提醒按鈕文本成功。

+0

謝謝。我更新了我的帖子,以幫助澄清我想要做的事情。將這個設置爲全局變量是不是一個好主意? – Ken 2011-05-04 04:58:34