如何在JQuery内部检查哪个控件触发了它
假设两个如何在JQuery内部检查哪个控件触发了它,jquery,asp.net,Jquery,Asp.net,假设两个asp.net控件触发相同的JQuery函数。 我们如何在JQuery中检查哪个控件触发了它: asp.net <asp:CheckBox ID="R1" runat="server" AutoPostBack="True" OnClick="return Discount(this);"/> <asp:CheckBox ID="R2" runat="serve
asp.net
控件触发相同的JQuery
函数。
我们如何在JQuery
中检查哪个控件触发了它:
asp.net
<asp:CheckBox ID="R1" runat="server" AutoPostBack="True" OnClick="return Discount(this);"/>
<asp:CheckBox ID="R2" runat="server" AutoPostBack="True" OnClick="return Discount(this);"/>
你的测试是错误的,你必须这样写:
function Discount(chk) {
$(function () {
if ( chk.id== "R1")
alert("Hi R1");
if (chk.id == 'R2')
alert("Hi R2");
});
}
您可以在不使用if语句的情况下简化:
function Discount(chk) {
$(function () {
alert("Hi " + chk.id);
});
}
有许多问题:
将是一个字符串,但chk.id
将是一个jquery对象-它们将永远不一样$(“#R1”)
意味着ID=“R1”runat=“server”
将不会是ID
,因为asp.net“有益地”尝试通过添加上下文使ID唯一R1
将始终==0,因为asp.net已为您断开ID=(再次“有益”)$(“#R1”).length
永远不会提供警报(“Hi R1”)
-因此这不是OP正在运行的代码,很可能他们正在运行“Hi contentBody\u R1”
警报(“Hi”+chk.id)
$(“#R1”)
,除非你使用$(“#contentBody_R1”)
的完整id,然后假设你不会将它移动到不同的内容中以获得不同的id
最简单的选择是在通话中传递您想要的信息,例如:
<asp:CheckBox ID="R1" runat="server" AutoPostBack="True" OnClick="return Discount(this, 15.0);"/>
<asp:CheckBox ID="R2" runat="server" AutoPostBack="True" OnClick="return Discount(this, 17.5);"/>
或者将信息存储在复选框中(如果使用服务器端控件,可能需要一些额外的工作,但对于输入,则需要):
另一种选择是使用HTML而不是服务器端控件,除非您真的需要在复选框上自动回写(提示:您可能不需要这样做),即:
在这种情况下,您可以使用
chk.id=$(“#r1”).attr(“id”)
,但是如果您是通过id
查找的,那么您已经知道id
,因此不需要查找。什么都没有发生。如果我删除“if statemnet”,它会显示“Hi contentBody_R1”和“Hi contentBody_R2”,这很正常,我不明白,你想删除if吗?你想做什么1.不清楚。如果。。我只是告诉你打印的是什么用法:alert(chk.id)
(在原始代码中)chk.id!=“R1”
(或“R2”)因为asp.net会用您的ID到处乱转
<asp:CheckBox ID="R1" runat="server" AutoPostBack="True" OnClick="return Discount(this, 15.0);"/>
<asp:CheckBox ID="R2" runat="server" AutoPostBack="True" OnClick="return Discount(this, 17.5);"/>
function Discount(chk, discount) {
<input type="checkbox" id="r1" data-discount="15" onclick="return Discount(this);">
<input type="checkbox" id="r2" data-discount="17.5" onclick="return Discount(this);">
function Discount(chk) {
var discount = $(chk).data("discount") * 1.0;
<input type="checkbox" id="r1" data-discount="15" onclick="return Discount(this);">
<input type="checkbox" id="r2" data-discount="17.5" onclick="return Discount(this);">
function Discount(chk) {
if (chk.id == "r1")