获取JavaScript/JQuery中调用方的ID

获取JavaScript/JQuery中调用方的ID,javascript,jquery,Javascript,Jquery,我创建了一个AjaxMethod(一个非常通用的方法,我正在进行ASP.NET MVC)来获取用户单击的项目的ID,并将其添加到站点购物车中(通过将其添加到cookie中)。问题是,我的Ajax方法有一个用作ID的参数,因此我创建的按钮的ID属性是实际产品ID,它们的值是添加到购物车。我还创建了一个单个隐藏的提交按钮,其id与Ajax方法中的参数名同名,其值取决于单击按钮的id Click Button ID --Passed into--> Value of submit button

我创建了一个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中使用它,单击按钮中的:获取调用方按钮的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")
}
//我不知道呼叫者的ID
//此方法的使用方式如下:
功能测试(){
var ID=this.ID//这不起作用
$(“#提交按钮”).val(ID)
$(“提交按钮”)。触发器(“单击”)
}
您可以使用获取单击元素的id

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

首先,您的函数有一个问题,
实际上并没有在该上下文中引用该按钮

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

function Test(event)
然后,您可以从事件对象获取元素的ID,正如Dmitry在回答中所示:

function Test(event) {
    var ID = event.id 
    $("#SubmitButton").val(ID);
    $("SubmitButton").trigger("click");
}
正如您发现的,您需要在绑定中传递
事件
的值

<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");
});
//设置如下:
$(“.someClassToIdentificationTheButton”)。单击(函数(){
var ID=$(this.attr('ID');
$(“#提交按钮”).val(ID);
$(“提交按钮”)。触发器(“单击”);
});

您是如何将处理程序绑定到事件的?@kinakuta:over onclientclickkhave看看这个问题:@Phaeze:这是另一个问题,我的ID未知!显示(相关的)HTML和JavaScript。我们需要背景来为你提供一个如此完美的联盟。例如,这是什么?
?我的ID是未知的,如果是这样的话,那就太容易了!如果您在为页面构建HTML时可以访问jQuery事件处理程序,则无需知道元素的ID即可将其附加到jQuery事件处理程序!!!刚刚准备好jQuery docsSubmit按钮不能点击你可以将jQuery处理程序附加到任何东西上,我相信如果你仔细观察,你会找到一个合适的元素来附加它。好的观点,但这个问题的作者可能使用了函数范围绑定,他知道:)来自c#背景,为什么该方法将
event
作为参数,但它基于
e
检测id,我不是JS专家,但可能是
event e
,无论如何不是working@PierreOverFlow是的,那是我的错误,我把它改成了事件,让它更清楚,但在那一点上错过了。一个问题,当我在其中编写
事件时,我的VisualStudio无法将其识别为内置内容或关键字。那又是什么呢?是内置的javaScript吗?如果你能帮我的话,也许我能想办法让它工作。@PierreOverFlow它不是内置的,它只是传入变量的一个名称,你可以把它改成
bob
,不管你怎么想。如果这个方法不起作用,而您正在使用jQuery,我建议给我的第二个示例一次机会,我更相信它会起作用,自从我在asp页面中连接js事件以来,已经有很长时间了。