IDE:VS 2012爲什麼單選按鈕不通過ASP控制的clientID的
設計代碼
方案1:用RUNAT = 「服務器」(這是需要的話),JavaScript的功能不起作用
<asp:TextBox ID="txtCost" runat="server" ReadOnly="true" Text="250/-"></asp:TextBox>
<input type="radio" name="myRadios" runat="server" id="rb1" checked="true" onchange="javascript:UpdateClick(this,'<%=txtCost.ClientID %>');" value="1" /> Monthly
<input type="radio" name="myRadios" runat="server" id="rb2" value="2" onchange="javascript:UpdateClick(this,'<%=txtCost.ClientID%>');" /> Weekly
場景2:runat =「server」被刪除(這是必需的),javascript函數正在工作。
<asp:TextBox ID="txtCost" runat="server" ReadOnly="true" Text="250/-"></asp:TextBox>
<input type="radio" name="myRadios" id="rb1" checked="true" onchange="javascript:UpdateClick(this,'<%=txtCost.ClientID %>');" value="1" /> Monthly
<input type="radio" name="myRadios" id="rb2" value="2" onchange="javascript:UpdateClick(this,'<%=txtCost.ClientID%>');" /> Weekly
JavaScript函數:
function UpdateClick(myRadio, ClientID) {
currentValue = myRadio.value;
if (currentValue == '1') {
var txtCostBox = document.getElementById(ClientID);
txtCostBox.value = '250/-';
}
else {
var txtCostBox = document.getElementById(ClientID);
txtCostBox.value = '600/-';
}
return false;
}
問題:
所以,當我在單選按鈕刪除RUNAT = 「服務器」,代碼的工作,當我把RUNAT = 「服務器」 ,而不是得到實際的客戶端ID我得到客戶端ID:
'<%=txtCost.ClientID%>'
我有一個要求,我需要保持與runat =「服務器」單選按鈕,你能告訴我如何解決上述問題。
這是沒有意義的...... runat =服務器意味着你需要ClientID ...所以你說的話似乎顛倒了。 – MaxOvrdrv
你甚至需要傳遞'txtCost'的'ClientID'嗎?它的ID顯示爲靜態。另外還不清楚你的js是否一直運行,或者它是否沒有收到'ClientID'。 – Crowcoder