2014-04-24 85 views
0

我想獲得點擊按鈕的ID,因爲我有我的窗體上4-5按鈕。找到點擊按鈕的ID

<button type="submit" style="height: 30px" id="btnHelp" name="btnHelp" onclick="ShowHelp(2);return false;">Help</button> 

    <button type="button" style="height: 30px" id="btnClose" name="btnClose" onclick="Close();return false;">Close</button> 

    <button type="button" style="height: 30px" id="btnSave" name="btnSave" onclick="Save();return false;">Close</button> 

............................... 

無論按下哪個按鈕,我只想獲得該按鈕的ID。

$(function() { 

     var id = $(this).attr('id'); 

     alert(id); 
}) 

$("input").click(function (event) { 
     var urlid = $(this).attr('id') 
     alert(urlid); 
    }) 

但我收到警報爲未定義

也。

如何獲得點擊的按鈕ID?

請幫幫我。

+1

嘗試從按鈕 –

回答

7

嘗試

:button Selector

選擇所有按鈕元素和類型的按鈕元素。

$(":button").click(function (event) { 
    var urlid = this.id; 
    alert(urlid); 
}); 


Fiddle Demo


問題

$("input") - >選擇與標籤input例如元素。 <input type="text"/>但不是<button>標記。

+1

刪除的onclick功能@AngryTiger改變你的選擇,以':button' –

+0

它仍然顯示我提醒未定義 –

+0

@AngryTiger請創建HTTP://的jsfiddle .net /。 –

2

得很乾脆:

$("input").click(function (event) { 
     var urlid = this.id; 
     alert(urlid); 
    }) 

的按鈕:

$("button").click(function (event) { 
      var urlid = this.id; 
      alert(urlid); 
     }) 
2

您可以嘗試使用event作爲參數傳遞給任何事件處理程序,而不是爲thisevent.target參照元素實際上觸發你的處理器(被點擊)和event.delegateTarget爲元素管理器已安裝到最初。在這兩種情況下,您都可能必須使用$()來使用jQuery,或者只需在任何一種情況下都堅持使用.id

在你的情況,這將是

$("input").click(function (event) { 
    var urlid = $(event.delegateTarget).attr('id'); 
    alert(urlid); 
}); 

,以確保處理器始終訪問它已經被連接到這裏。

除了這個簡單的場景依靠this有時比使用提供的參數更棘手。

編輯:但是,您的情況似乎與Tusha Gupta遇到的問題有關。實際上,您的按鈕不是「輸入」,因此處理程序從不連接。

2

我試圖用事件觸發器替換this

var urlid = $(event.target).attr("id"); 

而且,可能是你的onclick功能是防止你的腳本執行,因爲它處理click事件,而不是讓你的功能做到這一點。

1
$(function() { 

     $("button").click(function() { 

     alert($(this).attr("id")); 
    }); 
}); 
2

我拋棄你有按鈕和鉤click事件的onclick屬性button而非input,和它的工作。所以檢查你是否連接到正確的元素。 參見示例here

2
<script> 
jQuery(":button").click(function (event) { 
     var urlid = $(this).attr('id') 
     alert(urlid); 
    }) 
</script> 

試試這個工作