Javascript 选中所有单选按钮(JSF组件)+jQuery

Javascript 选中所有单选按钮(JSF组件)+jQuery,javascript,jquery,jsf,dom,Javascript,Jquery,Jsf,Dom,我有一个迭代数据表的表单,每行有一组组件,其中一个是: <h:selectOneRadio id="chargeWaive" onclick="alert(this.id);" > <f:selectItem itemLabel="Charge" itemValue="charge" /> <f:selectItem itemLabel="Waive" itemValue="waive" /> <

我有一个迭代数据表的表单,每行有一组组件,其中一个是:

<h:selectOneRadio id="chargeWaive" onclick="alert(this.id);" >              <f:selectItem itemLabel="Charge" itemValue="charge" />                  <f:selectItem itemLabel="Waive" itemValue="waive" />
</h:selectOneRadio>
我得到的错误是:Sintax error,无法识别的表达式:billingRecordId

我知道id是正确的,因为当我查看编译的JSF代码时,生成的无线电类型id是:


所以在这一点上,我不知道我在这里遗漏了什么。有什么想法吗?

冒号可能会导致jquery选择器出现问题。请尝试使用双反斜杠将其转义:

$('#frmResults\\:billingRecordId\\:0\\:chargeWaive\\:0').attr('checked', true);

冒号可能导致jquery选择器出现问题。请尝试使用双反斜杠将其转义:

$('#frmResults\\:billingRecordId\\:0\\:chargeWaive\\:0').attr('checked', true);
你试过这样吗

也可以使用.prop而不是.attr

你试过这样吗

也可以使用.prop而不是.attr

jQuery用于选择HTMLDOM树中的元素

:是CSS选择器中的一个特殊字符,表示的开始。所以如果你使用

$('#frmResults:billingRecordId')
然后,它基本上寻找ID为frmResults的HTML元素,并具有与billingRecordId匹配的伪类。但是,由于billingRecordId根本不是有效的伪类,因此将找不到任何内容

您基本上需要在CSS选择器语法中转义冒号

$('#frmResults\\:billingRecordId\\:0\\:chargeWaive\\:0')
或者,使用[id]属性选择器

$('[id="frmResults:billingRecordId:0:chargeWaive:0"]')
或者,去掉链接ID和索引

$('[id$=":chargeWaive"]:first :radio:first')
选择ID结尾为:ChargeAverage的元素,获取第一个,然后从中获取第一个单选按钮

另见: 作为一种完全不同的选择,您还可以执行JSF ajax调用,通过在支持bean的ajax侦听器方法中相应地设置模型值来预选所需的单选按钮。

jQuery用于选择HTML DOM树中的元素

:是CSS选择器中的一个特殊字符,表示的开始。所以如果你使用

$('#frmResults:billingRecordId')
然后,它基本上寻找ID为frmResults的HTML元素,并具有与billingRecordId匹配的伪类。但是,由于billingRecordId根本不是有效的伪类,因此将找不到任何内容

您基本上需要在CSS选择器语法中转义冒号

$('#frmResults\\:billingRecordId\\:0\\:chargeWaive\\:0')
或者,使用[id]属性选择器

$('[id="frmResults:billingRecordId:0:chargeWaive:0"]')
或者,去掉链接ID和索引

$('[id$=":chargeWaive"]:first :radio:first')
选择ID结尾为:ChargeAverage的元素,获取第一个,然后从中获取第一个单选按钮

另见:
作为一种完全不同的选择,您还可以执行JSF ajax调用,通过在支持bean的ajax侦听器方法中相应地设置模型值来预选所需的单选按钮。

谢谢!我尝试了你的解决方案,效果很好,现在我知道我需要逃离冒号。谢谢!我尝试了你的解决方案,效果很好,现在我知道我需要逃离冒号。谢谢你,巴卢斯克!基本上我没有逃出结肠,我不知道这一点。我想我们每天都会学到一些新东西:谢谢你,巴卢斯克!基本上我没有逃出结肠,我不知道这一点。我想我们每天都会学到一些新东西: