2013-03-13 35 views
1

我想用jQuery獲取文本框對象。我如何使用jquery引用jsf對象?

$(function() { 
    // create a datepicker with default settings 
    $("[id='#{fbForm.beginDate}']").mobiscroll().date({ 
     invalid: { 
      daysOfWeek: [0, 6], 
      daysOfMonth: ['5/1', '12/24', '12/25'] 
     }, 
     theme: 'android-ics light', 
     display: 'bottom', 
     mode: 'scroller', 
     dateOrder: 'mmD ddyy' 
    }); 
}); 

這不行?爲什麼是什麼Assumming你有

<h:form id="myForm"> 
    <h:inputText id="myText" /> 
</h:form> 

您可以通過訪問該組件使用jQuery的問題

+0

以何種方式它 「不工作」? – isherwood 2013-03-13 01:55:06

+0

也可以顯示您想要獲取的對象的示例。 – 2013-03-13 01:55:38

+0

我只是想獲得用jsf創建的文本框對象編號爲 – user2153566 2013-03-13 01:56:48

回答

1

var myText = $('#myForm\\:myText'); 

例子:

<script type="text/javascript"> 
    //<![CDATA[ 
    window.onload = function() { 
     var myTextValue = $('#myForm\\:myText').val(); 
     alert(myTextValue); 
    }; 
    //]]> 
</script> 

<h:form id="myForm"> 
    <h:inputText id="myText" value="#{fbForm.beginDate}" /> 
</h:form> 

或者您可以使用純組分在<h:form>上加prependId="false" ID:

<script type="text/javascript"> 
    //<![CDATA[ 
    window.onload = function() { 
     var myTextValue = $('#myText').val(); 
     alert(myTextValue); 
    }; 
    //]]> 
</script> 

<h:form prependId="false"> 
    <h:inputText id="myText" value="#{fbForm.beginDate}" /> 
</h:form> 
0

萬一你使用RichFaces的,你也可以使用:

豐富:的clientId(ID) - 返回客戶端ID爲組件通過它的短ID。

豐富:元素(ID) - 返回DOM元素傳遞的短ID

豐富:成分(ID) - 返回RichFaces的客戶端組件實例調用一些API方法。

rich:isUserInRole(role) - 返回用戶是否指定角色。

豐富:findComponent(ID) - 對於給定的短ID返回組件實例

豐富:jQuery的(ID) - 返回與給定短ID

實施例的元素的jQuery對象:

<h:form> 
    <h:inputText id="input"> 
     <a4j:ajax render="out" /> 
    </h:inputText> 
    <h:outputText value="#{rich:findComponent('input').value}" id="out" /> 
</h:form> 

更多信息和示例對如何做到這一點:

http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=functions&skin=blueSky

問候,