如果他们都是runat服务器,如何选中哪个单选按钮?

时间:2016-06-10 19:49:02

标签: javascript jquery html

我有一些代码需要检查单选按钮,我知道如何在客户端执行此操作。这是标记:

<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来完成这项工作吗?这可能吗?如何获取单选按钮组的名称,然后检查该组中的哪个按钮被选中?

1 个答案:

答案 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();

这将解决您的问题。