2014-09-29 57 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