[英]I can not retrieve the input value of javascript for jsf
我有一个提供自动地址的脚本
<script src="${facesContext.externalContext.requestContextPath}/js/jquery.geocomplete.js"> </ script>
<script>
$ (function () {
$ ("# geocomplete " ) . geocomplete ( {
map: , " Give us feedback . "
details " form ul "
detailsAttribute " geo - data "
} ) ;
} ) ;
而这里的jsf部分就是代码!
<h:inputText id="geocomplete" style="margin-left:34%" type="text" value="#{creerCompteFacade.adresse}" />
但是没有自动地址的问题
我变了
<input type="text" id="geocomplete" style="margin-left:34%" value="#{creerCompteFacade.adresse}" />
它可以正常工作并提供自动地址,但是我无法检索该值的问题
An Error Occurred :
org.hibernate.exception.ConstraintViolationException : Column ' ADDRESS ' can not be null
我尝试了JSFC,但没有任何改变
<input jsfc="h:inputText" id="geocomplete" style="margin-left:34%"
type="text" value="#{creerCompteFacade.adresse}" />
看起来您的<h:inputText id="geocomplete">
在<h:form>
,如下所示:
<h:form>
<h:inputText id="geocomplete" ... />
</h:form>
因此,生成的HTML可能是:
<form>
<input id="jsf_65461:geocomplete" type="text" ... />
<!-- other HTML components... -->
</form>
您可以通过以下两种方法解决此问题:
为您的<h:form>
定义一个ID,然后生成的ID将为<formId>:<componentId>
。 例:
<h:form id="frmGeo"> <h:inputText id="geocomplete" ... /> </h:form>
那会产生
<form id="frmGeo"> <input id="frmGeo:geocomplete" type="text" ... /> </form>
然后,您可以在JavaScript / jQuery代码中使用此ID:
$("#frmGeo\\\\:geocomplete") //the : must be escaped
在您的<h:form>
使用prependId="false"
,以便表单内的组件将在JSF代码中设置ID:
<h:form id="frmGeo" prependId="false"> <h:inputText id="geocomplete" ... /> </h:form>
那会产生
<form id="frmGeo"> <input id="geocomplete" type="text" ... /> </form>
然后,您可以在jQuery代码中使用此ID:
$("#geocomplete")
如BalusC所述,此方法将打破<f:ajax>
组件的用法,特别是用于execute
和render
属性。 请参见带有prependId =“ false”的UIForm中断<f:ajax渲染>
我找到了解决方案:
<script type="text/javascript">
$(function(){
$('input:text[id$="geocomplete"]').geocomplete({
map: ".map_canvas",
details: "form",
country: "FR",
types: ["geocode", "establishment"]
});
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.