2016-07-09 79 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错误,并且此错误之后的所有事情都会赢得工作不正常。