繁体   English   中英

我无法为jsf检索javascript的输入值

[英]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>

您可以通过以下两种方法解决此问题:

  1. 为您的<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 
  2. 在您的<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>组件的用法,特别是用于executerender属性。 请参见带有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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM