我知道这方面已有一些话题,但我认为我有正确的概念只是一个缺陷。我需要一个if语句来确定是否检查了radioButton。以下是我的代码。
if($j("input:radio[name=selector1]").is(":checked")){
//do something here
}
<p:selectOneRadio id="radioButtonsId" widgetVar="rb1">
<f:selectItem id="selector1" itemLabel="Yes" itemValue="true"/>
<f:selectItem id="selector2" itemLabel="No" itemValue="false"/>
</p:selectOneRadio>
我想知道if块中的名字是否错误。我在primeFaces和jQuery上也遇到了很多问题。
答案 0 :(得分:1)
这不起作用的原因是因为选择器input:radio[name=selector1]
。 id selector1 不是 id ,也不是输入标记的 name 。单选按钮组的输入标记的 id 和 name 将遵循命名约定:
id :formId:selectOneRadioId:indexOfTagInGroup
名称:formId:selectOneRadioId
因此,在您的情况下, selector1 的名称将为someGeneratedJSFId:radioButtonsId
,而 id 将为someGeneratedJSFId:radioButtonsId:0
。要选择此特定元素,您可以使用:
$("input:radio[id*=radioButtonsId\\:0]")
id*=
选择包含您指定的字符串 id 的单选按钮\\
是:
0
选择单选按钮组中的第一个输入标记所以,请尝试以下方法:
if($("input:radio[id*=radioButtonsId\\:0]").is(":checked")){
//do something here
}
<p:selectOneRadio id="radioButtonsId" widgetVar="rb1">
<f:selectItem id="selector1" itemLabel="Yes" itemValue="true"/>
<f:selectItem id="selector2" itemLabel="No" itemValue="false"/>
</p:selectOneRadio>