以下代码无法正常工作。标记在用户控件中,我想这就是为什么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?我不太关心发生了什么(也许页面上有另一个控件干扰了),但希望能找到更健壮的解决方法。