2013-01-16 40 views
1

根據inputHidden字段的值,應該在javascript端執行某些功能。添加輸入隱藏字段值的方法

<h:inputHidden id="onlyCaseSensitive" value="#{testBean.isPageAllowed()}"/> 

AFER的JavaScript執行,應用程序會引發錯誤 物業不qritable非法語法爲您h:inputHidde的設定操作

+0

上的JavaScript客戶端運行,所以你的服務器 - 在這種情況下,邊走並不是很有幫助。 –

+0

你在做什麼JavaScript?你在改變隱藏領域的價值嗎? – partlov

回答

1

應用程序會引發錯誤屬性不可寫非法語法設定操作

你EL表達式#{}無效。它必須評估爲一個值表達式,而不是一個方法表達式。對給定的方法表達式執行setter方法調用是不可能的,而在提交JSF表單時則需要這樣做。您需要刪除is前綴和這些括號以使其成爲有效的值表達式。

<h:inputHidden id="onlyCaseSensitive" value="#{testBean.pageAllowed}"/> 

這需要public boolean isPageAllowed() getter方法和public void setPageAllowed(boolean pageAllowed) setter方法。


如果實際上只需要使用JSF管理bean屬性作爲一個JavaScript變量,那麼你不應該渲染它作爲一個隱藏的輸入所有,但只是讓JSF渲染fullworthy JavaScript變量而不需要混淆隱藏的輸入和HTML DOM遍歷。

E.g.

<script> 
    var onlyCaseSensitive = #{testBean.pageAllowed}; 
</script> 

這將結束在JSF生成的HTML輸出一樣如下(右擊頁面並做查看源看到它):

<script> 
    var onlyCaseSensitive = true; 
</script> 
+0

我們如何才能在javascript中訪問此字段? $('#inputText')。live(「click focus」,function(e){if($('#inpText').val()== onlyCaseSensitive){ – user1978406

+0

只需查看生成的HTML源代碼正確的元素ID。請參閱http://stackoverflow.com/questions/7927716/how-to-select-primefaces-ui-or-jsf-components-using-jquery/7928290#7928290 – BalusC

+0

如果我需要傳遞2個參數到isPageAllowed? – SaganTheBest

1

值應該指向支持與getter和setter bean的屬性。因此,可能當您提交頁面時,訪問setter字段時出現問題。