2016-07-09 82 views
1

當我點擊我的提交按鈕時,我的jQuery函數永遠不會被調用。jQuery和f之間的衝突:ajax

Nevetheless,jQuery的檢測,如果我刪除F上的點擊:AJAX線在H:的commandButton

我該如何讓它工作f:ajax和我的jQuery函數在一起嗎?

XHTML:

<h:form> 
    <!-- my inputs--> 
    <h:commandButton id="submit-button" type="button" value="Confirm" > 
     <f:param name="id" value="#{param.id}" /> 
     <f:ajax execute="@form" render="@none" /> 
    </h:commandButton> 
</h:form> 

的Javascript:

jQuery(document).ready(function() { 
jQuery('input[id*="submit-button"]').click(function() { 
    console.log("button clicked"); 
}); }); 
+0

查看呈現的響應。提交按鈕的id應該與相應的父組件的id相匹配,例如'form:submit-buttom'(除非'prependId'與''相關聯'設置爲false,否則不推薦使用)。 – Tiny

+0

我已經嘗試過'form:submit-buttom'語法。正如我所說,只有當我刪除''行時,jQuery纔會檢測到點擊。它看起來像來自ajax的問題​​... –

+0

爲什麼不使用''的'onclick'屬性來調用js函數? – whitesite

回答

0

我會寫這樣的評論,但是它太長了,所以我在這裏把它寫成一個答案。

我猜你有一個JS錯誤之前此:

// prior this code you could have a JS Error  
jQuery(document).ready(function() { 
    jQuery('input[id*="submit-button"]').click(function() { 
     console.log("button clicked"); 
    }); 
}); 

所以每一個JS代碼,JS-錯誤之後將無法正常工作。

可能的原因可能是xhtml的missConfiguration。我假設你的JSF-Ajax調用不起作用,如果你不在你的xhtml中包含<h:head></h:head>,就會發生這種情況。

<h:head></h:head>必須包含標籤才能使ajax正常工作。

你的情況會發生什麼情況是:你正在嘗試創建一個ajax請求,這是因爲JSF無法將jsf.js加載到你的xhtml頭文件中,這會導致JavaScript錯誤,並且此錯誤之後的所有事情都會贏得工作不正常。