2014-09-29 24 views
2

我創建了一個AjaxMethod(一個非常普遍的方法,和我做ASP.NET MVC),以獲得該項目的ID的用戶點擊,將它們添加到網站購物車中(將它們添加到Cookie中)。問題是我的Ajax方法有一個參數用作ID,所以我創建的按鈕的id屬性是實際產品ID,它們的值是加入購物車。我還創建了一個單隱藏提交按鈕,其ID爲,與Ajax方法中的參數名稱相同,其值取決於所點擊的按鈕的ID。獲取呼叫者的ID在JavaScript/JQuery的

Click Button ID --Passed into--> Value of submit button 

我的問題是,我想知道,有沒有什麼辦法來寫一個的JavaScript/JQuery的方法,並在按鈕,使用它在的OnClientClick到:得到來電按鈕的ID,然後將其傳遞給提交按鈕的值。

例如:

// I do not know the ID of the caller 
// this method is used like: <button id="1111" OnClientClick="Test()"></button> 
function Test() { 
    var ID = this.id // this did not work 
    $("#SubmitButton").val(ID) 
    $("SubmitButton").trigger("click") 
} 
+0

你是如何處理程序綁定到事件? – kinakuta 2014-09-29 20:54:16

+0

@kinakuta:over OnClientClick – JAX 2014-09-29 20:54:42

+0

看看這個問題:http://stackoverflow.com/questions/3239598/how-can-i-get-the-id-of-an-element-using-jquery – Phaeze 2014-09-29 20:55:01

回答

6

首先有一個與您的功能的問題,this實際上並沒有指按鈕,在這種情況下。

您需要定義的功能相匹配的標準事件處理程序的簽名,是這樣的:

function Test(event) 

然後你可以從事件對象元素的ID作爲梅德顯示,他的回答:

function Test(event) { 
    var ID = event.id 
    $("#SubmitButton").val(ID); 
    $("SubmitButton").trigger("click"); 
} 

而當你發現你需要在價值傳遞爲event在你的綁定

<button id="1111" OnClick="Test(this);"></button> 

另外,您可以使用jQuery使用除ID以外的東西綁定按鈕:

//set it up like this: <button id="1111" class="SomeClassToIdentifyTheButton"></button> 
$(".SomeClassToIdentifyTheButton").click(function(){ 
    var ID = $(this).attr('id'); 
    $("#SubmitButton").val(ID); 
    $("SubmitButton").trigger("click"); 
}); 
+0

好點,但也許這個問題的作者使用函數作用域綁定誰知道:) – 2014-09-29 21:04:33

+0

雖然這不工作,雖然 – JAX 2014-09-29 21:26:39

+0

從ac#背景,爲什麼該方法採用'event'作爲參數,但它檢測到基於' e',我不是JS專家,但也許它是'event e',無論如何不起作用 – JAX 2014-09-29 21:28:02

-1

您可以使用jQuery .click method來獲取點擊的元素的ID。

$("#SubmitButton").click(function(event) { 
    alert(event.target.id); 
}); 
+0

我的身份證是未知的,如果它是如此簡單! – JAX 2014-09-29 20:57:36

+1

如果你有權訪問那些當你爲頁面構造HTML的時候,你不需要知道要附加jQuery事件處理程序的元素的ID!剛剛準備好jQuery文檔 – 2014-09-29 21:00:27

+0

提交按鈕無法點擊 – JAX 2014-09-29 21:02:39