2012-08-03 96 views
1

我面臨一個有趣的情況。我試圖通過使用javaScript代碼將myBean設置爲隱藏輸入,但它不起作用。我調試過,看到它從myBean調用getMyValue()方法,然後什麼都不做。它不會給出錯誤或警告,也不會設置值。請任何幫助。getElementById()。value不設置隱藏的輸入

在此先感謝。代碼如下:

<h:body> 

<script type="text/javascript"> 
    function setHiddenValue(){ 
    document.getElementById('myForm:hidden2').value = 3.0; 
    } 
</script> 
<h:form id="myForm">    
    <h:inputHidden id="hidden2" value="#{myBean.myValue}" /> 
    <h:commandButton value="submit" action="..." onclick="setHiddenValue();" /> 
</h:form> 

</h:body> 
+3

但它肯定看起來像 「ID」 值只是 「hidden2」,而不是「 myForm會:hidden2" 。 – Pointy 2012-08-03 13:29:53

+1

不是真的..看看這個'h:'前綴..我猜這是JSF生成這樣的ID ..無論如何,請檢查它是否真的是你在那裏生成的ID .. – 2012-08-03 13:31:34

+1

@Pointy:你錯了。 Aylak,這是*完整*代碼嗎?有很多可能的原因,爲什麼模型值沒有更新,但到目前爲止發佈的代碼並沒有表明以任何方式更新模型值階段會被跳過。例如,當發生驗證/轉換錯誤時可能會發生這種情況。 – BalusC 2012-08-03 14:12:38

回答

0

是不是按鈕submiting的形式,而不是做的onclick行動?請儘量相同,但使用的

<h:commandButton value="submit" action="..." onclick="setHiddenValue();" /> 

或可替代

<button onclick="setHiddenValue();">submit</button> 

改用:

<h:commandButton value="submit" action="..." onclick="setHiddenValue(); return false;" /> 
+0

不,它可以正常工作。但問題是它沒有看到我的身份證的h:形式。但我不知道如何。不管怎麼說,還是要謝謝你。 – aylak 2012-08-03 14:26:11