var radiobox = document.getElementById('<%=rdoRiskAccepted.ClientID%>');
alert(radiobox[0].checked);
我得到一個未定義的警報。我究竟做錯了什麼。需要javascript代碼幫助
var radiobox = document.getElementById('<%=rdoRiskAccepted.ClientID%>');
alert(radiobox[0].checked);
我得到一個未定義的警報。我究竟做錯了什麼。需要javascript代碼幫助
getElementById
返回一個元素,因爲,即使對於廣播組,the id
attribute must be unique。您應該使用name
屬性來指定一個無線電組,並使用getElementsByName
代替。例如:
<input type="radio" name="myRadio" checked><label>1</label>
<input type="radio" name="myRadio"><label>2</label>
JS
var radiobox = document.getElementsByName("myRadio");
alert(radiobox[0].checked);
我使用asp:radiobuttonlist,所以我只有ID ...沒有名字 – 2010-05-13 11:27:59
嚴重嗎? ASP不允許你訪問這個名字?好吧,如果是這樣,只需使用ID獲取第一個ID,然後訪問.name屬性以獲取單選按鈕集的名稱,然後按索引訪問。 – scunliffe 2010-05-13 11:36:54
@vaibhav:我不使用ASP,但是您的ASP.net標記仍然必須呈現爲有效的HTML代碼。根據我讀過的一些頁面,單選按鈕是以列表的'id'作爲它們的'name'呈現的,所以使用'document.getElementsByName('<%= rdoRiskAccepted.ClientID%>');'should工作。 – 2010-05-13 11:48:28
使用alert(radiobox .checked);
我也想知道爲什麼你正在使用的clientid只有你必須使用<%= this.page.clientid +「_」 + rdoRiskAccepted.ClientID%>
rdoRiskAccepted.ClientID將返回控件的完整客戶端ID,其中包含頁面/內容佔位符等ID。 – 2010-05-13 11:23:35
使用jQuery ...
<asp:radiobuttonlist ID="rdoRiskAccepted" runat="server">
<asp:listitem Value="True" Selected="true">Yes</asp:listitem>
<asp:listitem Value="False">No</asp:listitem>
</asp:radiobuttonlist>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
var riskAccepted=$('#<%=rdoRiskAccepted.ClientID%> input');
alert(riskAccepted[0].checked); //true
});
//]]>
</script>
基本調試第一。錯誤控制檯中的任何錯誤?您使用的ID實際上是在瀏覽器中輸出的,並且是否有帶該ID的單選按鈕? – 2010-05-13 11:13:40
嘗試將<%= rdoRiskAccepted.ClientID%>放入不可見的文本框(其中style =「display:none」),然後訪問文本框的ID。我不認爲JavaScript可以訪問.net變量(所有的想法我不太瞭解.net,所以我可能是明目張膽的錯誤)。 再次想到,pass是作爲js函數中的一個變量。 – Random 2010-05-13 11:18:40