我有一些代码需要检查单选按钮,我知道如何在客户端执行此操作。这是标记:
<input type="radio" id="rbInternalUser" name="radioUserType" value="Internal" onclick="setUserType()"/>
<label for="<%=rbInternalUser.ClientID%>">Internal User</label><br />
<input type="radio" id="rbExternalUser" name="radioUserType" value="External" onclick="setUserType()"/>
<label for="<%=rbExternalUser.ClientID%>">External User</label><br />
和javascript:
<script type="text/javascript">
function setUserType() {
var userType = $("input[name=radioUserType]:checked").val();
}
</script>
但是我需要将这些控件设置为runat=server
,因为我也在处理一些代码:
<input type="radio" id="rbInternalUser" name="radioUserType" value="Internal" onclick="setUserType()" runat="server" />
<label for="<%=rbInternalUser.ClientID%>">Internal User</label><br />
<input type="radio" id="rbExternalUser" name="radioUserType" value="External" onclick="setUserType()" runat="server" />
<label for="<%=rbExternalUser.ClientID%>">External User</label><br />
在这种情况下,如何找出选择了哪个按钮?看起来通常的$("#<%=myControl.ClientID%>")
似乎不会起作用。我尝试了一些事情,这似乎很接近:
<script type="text/javascript">
function setUserType() {
var radioUserType = $("#<%=rbInternalUser.ClientID%>").prop("name");
var userType = $("input[name=" + radioUserType + "]:checked").val();
}
</script>
radioUserType
正在获取客户端ID,但是下一行失败,说,&#34;无法识别的表达式:input [name = ctl00 $ body $ EditUser1 $ radioUserType]:checked&#34;。
我需要代替radioUserType
来完成这项工作吗?这可能吗?如何获取单选按钮组的名称,然后检查该组中的哪个按钮被选中?
答案 0 :(得分:2)
使用css属性选择器选择元素时,请确保传递的值用引号括起来。例如:
$("input[name='John Doe']")
请注意名称&#39; John Doe&#39;周围的单引号。
因此,您需要更改现有语句
var userType = $("input[name=" + radioUserType + "]:checked").val();
到
var userType = $("input[name='" + radioUserType + "']:checked").val();
这将解决您的问题。