gpt4 book ai didi

javascript - this.id 对于 asp :CheckBox 是空的

转载 作者:行者123 更新时间:2023-11-30 17:58:42 24 4
gpt4 key购买 nike

我有一个 asp:CheckBox带有以下标签:

<asp:CheckBox ID="cbTest1" runat="server" onchange="cbChange(this.id);"/>

cbChange<head> 中的一个 Javascript 函数看起来像这样(现在很简单):

<script type="text/javascript">

function cbChange(senderID) {
alert('|' + senderID + '|'); // '|' is to help see string length
return false;
}

</script>

现在,每当我点击 cbTest1 ,我收到带有以下文本的警告框:

||

换句话说,它是一个空字符串。我还应该注意,当我使用更传统的 <input> 时我得到了预期的结果:

(<input> 的代码)

<input type="checkbox" name="cbtest2" id="cbtest2" onchange="cbChange(this.id);" />

(当我检查 cbtest2 时警告框中的文本)

|cbtest2|

为什么我会得到带有 asp:Checkbox 的 null/空字符串, 但与 <input> 的预期行为?

编辑 我做了更多的研究,因为 asp:CheckBoxID属性而不是(小写)id ,所以我尝试了 onchange="cbChange(this.ID);" .现在我在警告框中得到以下输出:

|undefined|

为什么还会发生这种情况?

最佳答案

拉出您呈现的页面源代码,您会看到 ASP 实际上将其呈现为:

<span onchange="cbChange(this.id);"><input id="ContentArea_cbTest" type="checkbox" name="ctl00$ContentArea$cbTest" /></span>

您的 input 元素实际上嵌套了一个 span 元素。

使用纯 JS,您仍然可以通过以下方式获取 input 的 ID:

<asp:CheckBox ID="cbTest" runat="server" onchange="cbChange(this.childNodes[0].id);"/>

关于javascript - this.id 对于 asp :CheckBox 是空的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17575004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com