Get the ID of the caller in JavaScript/JQuery
我创建了一个AjaxMethod(一种非常通用的方法,我正在做ASP.NET MVC)来获取用户点击的项目的ID,将它们添加到站点购物车中(通过将它们添加到cookie中)。 问题是我的Ajax方法有一个参数用作ID,所以我创建的按钮的id属性是实际的产品ID,它们的值是Add to Cart。 我还创建了一个隐藏的提交按钮,其id与Ajax方法中的参数名称相同,其值取决于所单击按钮的ID。
1 | Click Button ID --Passed into--> Value of submit button |
我的问题是,我想知道有没有办法编写JavaScript / JQuery方法并在按钮中的OnClientCLick中使用它:获取调用者按钮的id,然后将其传递给提交按钮的值。
例如:
1 2 3 4 5 6 7 | // 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") } |
首先,您的函数存在问题,
您需要定义与标准事件处理程序签名匹配的函数,例如:
1 | function Test(event) |
然后你可以从事件对象中获取Element的ID,正如Dmitry在他的回答中所示:
1 2 3 4 5 | function Test(event) { var ID = event.id $("#SubmitButton").val(ID); $("SubmitButton").trigger("click"); } |
正如您发现的那样,您需要在绑定中传递
1 | <button id="1111" OnClick="Test(this);"></button> |
或者,您可以使用jQuery使用ID之外的其他内容绑定按钮:
1 2 3 4 5 6 | //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"); }); |
您可以使用jQuery .click方法获取单击元素的id。
1 2 3 | $("#SubmitButton").click(function(event) { alert(event.target.id); }); |