1
我有一些JavaScript代碼(我從BalusC借來的),用於確保在表中選擇一個h:selectOneRadio按鈕。不幸的是,我從我的GlassFish服務器收到一個格式不正確的表達錯誤:如何確保只有一個h:selectOneRadio按鈕被選中
Error Parsing /ClientSearch.xhtml: Error Traced[line: 13] The content of elements must consist of well-formed character data or markup.
注:
if (elements[i].name.substring(elements[i].name.lastIndexOf(':')) == id) {
似乎是問題的線
我還沒有完全瞭解javascript(我是一個新手),我希望有人能解釋給我。
下面是完整的JavaScript:
function dataTableSelectOneRadio(radio) {
var id = radio.name.substring(radio.name.lastIndexOf(':'));
var elements = radio.form.elements;
for (var i = 0; i < elements.length; i++) {
if (elements[i].name.substring(elements[i].name.lastIndexOf(':')) == id) {
elements[i].checked = false;
}
}
radio.checked = true;
}
</script>
爲什麼會出現錯誤? 而且,腳本本身似乎是錯誤的。如果代碼不等於id,那麼不應該是false(如下所示)。
if (elements[i].name.substring(elements[i].name.lastIndexOf(':')) != id) {
elements[i].checked = false;
}
顯然我不明白。
這裏是表被Facelets代碼:在<h:dataTable>
客戶
<h:column headerText="First Name" >
<f:facet name="header"><h:outputText value="First Name" /></f:facet>
#{client.firstName}
</h:column>
<h:column headerText="Last Name" >
<f:facet name="header"><h:outputText value="Last Name" /></f:facet>
#{client.lastName}
</h:column>
<h:column headerText="Select" >
<f:facet name="header"><h:outputText value="Last Name" /></f:facet>
<h:selectOneRadio valueChangeListener="#{clientSearchBean.setSelectedItem}" >
<f:selectItem itemValue="null" />
</h:selectOneRadio>
</h:column>
<h:column headerText="Address" >
<f:facet name="header"><h:outputText value="Address" /></f:facet>
#{client.address}
</h:column>
<h:column headerText="Cell" >
<f:facet name="header"><h:outputText value="Cell" /></f:facet>
#{client.cell}
</h:column>
<h:column headerText="Phone" >
<f:facet name="header"><h:outputText value="Phone" /></f:facet>
#{client.phone}
</h:column>
</h:dataTable>
感謝Luiggi,你CDATA建議擺脫了錯誤消息。而且,是的,我忘了在發佈的代碼中包含onclick事件。我早些時候拿到了它,但是在擺弄時我把它放在了某個地方。但是現在javascript函數不會執行(我把onclick事件返回)。該網頁似乎並不知道它在那裏。有任何想法嗎? – Dave
@Dave不執行JavaScript方法,還是執行但會拋出未處理的異常?對你的問題做進一步的調查,如果你發佈HTML生成的頁面,我可以給你更好的指導。 –
通過將global.js文件(具有函數)複製到我的.xhtml文件中來獲得它的工作 - \t 但是當我簡單地將函數放入.xhtml文件並將其聲明爲不起作用的腳本。有任何想法嗎? –
Dave