我正在使用JSF 1.1并且我有一个ice:数据表,其中的行从backing bean获取。 要选择要编辑的行,我有一个该行的单选按钮。 当我使用单选按钮选择行时,我收到以下错误。
radio.name is undefined
在我的页面中,我调用javascript如下
<h:selectOneRadio styleClass="none" valueChangeListener="#{bean.setSelectedItem}"
onclick="dataTableSelectOneRadio(this);">
<f:selectItem itemValue="null" />
</h:selectOneRadio>
我的任何javascript函数
function dataTableSelectOneRadio(radio) {
var id = radio.name.substring(radio.name.lastIndexOf(':'));
var el = radio.form.elements;
for (var i = 0; i < el.length; i++) {
if (el[i].name.substring(el[i].name.lastIndexOf(':')) == id) {
el[i].checked = false;
}
}
radio.checked = true;
}
如何解决此错误?
由于
答案 0 :(得分:1)
显然,IceFaces不会为单选按钮生成name
属性,也不会在生成的onclick
元素上放置<input type="radio">
。请尝试使用id
。用radio.name
替换JavaScript代码中的radio.id
。如果徒劳无功,则需要检查生成的HTML输出(在浏览器中打开页面,右键单击查看源)并相应地更改JS代码。