在JavaScript / JQuery中获取调用者的ID

时间:2014-09-29 20:51:01

标签: javascript jquery

我创建了一个AjaxMethod(一种非常通用的方法,我正在做 ASP.NET MVC )来获取用户点击的项目的ID ,将它们添加到网站购物车中(通过将它们添加到cookie中)。问题是我的Ajax方法有一个参数用作ID,因此我创建了id属性为实际产品ID 的按钮,其值为添加到购物车。我还创建了一个单个隐藏提交按钮,其id 与Ajax方法中的参数名称相同,其值取决于所点击的ID按钮

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

我的问题是,我想知道有没有办法编写 JavaScript / JQuery方法并在按钮中使用 OnClientCLick to:获取来电按钮的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")
}

2 个答案:

答案 0 :(得分:9)

首先,您的功能存在问题,this实际上并未引用该上下文中的按钮。

您需要定义与标准事件处理程序签名匹配的函数,例如:

function Test(event)

然后你可以从事件对象中获取Element的ID,正如Dmitry在他的回答中所示:

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");
});

答案 1 :(得分:-1)

您可以使用jQuery .click method获取所点击元素的ID。

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