2011-09-19 63 views
0

我有一個JavaScript函數來運行h:或a4j:commanButton。當調用javascript函數時,動作按鈕會運行動作,但是在該頁面未被重定向之後。 我使用Seam 2.2和RichFaces 3.3.3 這裏有什麼問題?謝謝。由JavaScript調用的JSF/RichFaces commandButton不會重定向

function submitForm(){ 
     document.getElementById('myForm:save').click(); 

     // does not redirect. 
     //document.getElementById('myForm').submit(); 
     } 

即使我使用submit()頁面沒有重定向。

形式:

<h:form id="myForm"> 
//some fields 

<h:commandButton id="save" value="Save" 
         action="#{personHome.persist}" /> 

</h:form> 

回答

0

爲了這一點,下面應該<h:commandButton>工作:

document.getElementById('myForm:save').click(); 

當按鈕的形式是有問題的第一按鈕:

document.getElementById('myForm').submit(); 

你只需要保證e生成的客戶端ID與您在getElementById()中指定的ID完全相同。如果<h:form>本身嵌套在另一個UINamingContainer組件中,則該ID將與其ID一起作爲前綴。在瀏覽器中點擊右鍵,查看源代碼

至於具體的問題,也許你已經附加了這個功能的另一個按鈕,反過來也提交一些自己的形式,這將導致兩個請求的競爭條件。您應該在該函數之後或之後使用return false;來阻止調用方的默認操作。例如。

<h:commandButton onclick="return submitForm();" /> 

function submitForm(){ 
    // ... 

    return false; 
} 
+0

非常感謝您!它適用於a4j:也適用於h:commandButton。 – Yakari