以下代码不起作用。标记位于用户控件中,我想这就是为什么 ClientID 为 TextBox id 返回错误前缀的原因。
标记:
<INPUT id="txtName" runat="server" maxlength="50" style="WIDTH:100px">
<INPUT type="button" value="Find Your Doctor" id="btnFind" runat="server"
style="MARGIN-LEFT:10px;WIDTH:130px">
代码隐藏:
btnFind.Attributes.Add("onClick",string.Format("DoctorLink
('{0}',document.getElementById('{1}').value,{2});",
row["ZipCode"],
txtName.ClientID));
浏览器中的结果:
<input name="DoctorsMainArea1$ctl01$txtName" type="text"
id="DoctorsMainArea1_ctl01_txtName" maxlength="50" style="WIDTH:100px" />
<input name="DoctorsMainArea1$ctl01$btnFind" type="button"
id="DoctorsMainArea1_ctl01_btnFind" value="Find Your Doctor" style="MARGIN-
LEFT:10px;WIDTH:130px" onClick="PrepareDoctorLink('90210',
document.getElementById('DoctorsMainArea1_ctl00_txtName').value);" />
如您所见,JavaScript 调用的参数是DoctorsMainArea1_ctl00_txtName
,但输入元素的实际 id 是DoctorsMainArea1_ctl01_txtName
。
知道如何解决这个问题吗?jQuery?我对正在发生的事情的解释不太感兴趣(也许此页面上有另一个控件正在干扰),而是一种更强大的解决问题的方法。