第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何知道JSF組件的id以便在Javascript中使用

如何知道JSF組件的id以便在Javascript中使用

陪伴而非守候 2019-06-29 10:24:28
如何知道JSF組件的id以便在Javascript中使用有時,您可能希望訪問javascript中的組件getElementById,但是id是在JSF中動態(tài)生成的,因此您需要一種獲取對象id的方法。我在下面回答你如何做到這一點(diǎn)。原題:我想使用如下代碼。如何在Javascript中引用inputText JSF組件?<html xmlns="http://www.w3.org/1999/xhtml"       xmlns:h="http://java.sun.com/jsf/html"       xmlns:f="http://java.sun.com/jsf/core">     <head>        <title>Input Name Page</title>         <script type="javascript" >           function myFunc() {             // how can I get the contents of the inputText component below                       alert("Your email address is: " + document.getElementById("emailAddress").value);           }        </script>     </head>     <h:body>         <f:view>             <h:form>                 Please enter your email address:<br/>                 <h:inputText id="emailAddresses" value="#{emailAddresses.emailAddressesStr}"/>                 <h:commandButton onclick="myFunc()" action="results" value="Next"/>             </h:form>         </f:view>     </h:body></html>更新*這個員額JSF2.0中的客戶端標(biāo)識符討論使用如下技術(shù)的方法:<script type="javascript" >   function myFunc() {     alert("Your email address is: " + document.getElementById("#{myInptTxtId.clientId}").value);   }</script><h:inputText id="myInptTxtId" value="backingBean.emailAddress"/><h:commandButton onclick="myFunc()" action="results" value="Next"/>暗示這個屬性id在inputText組件創(chuàng)建一個可以使用EL訪問的對象。#{myInptTxtId},在上面的例子中。本文接著指出JSF2.0添加了零參數(shù)getClientId()方法的UIComponent班級,等級。從而允許#{myInptTxtId.clientId}構(gòu)造,以獲得組件的實(shí)際生成id。雖然在我的測試中這不起作用。還有人能確認(rèn)/否認(rèn)。下面建議的答案存在上述技術(shù)不適用的缺點(diǎn),所以最好知道上面的技術(shù)是否有效。
查看完整描述

3 回答

?
拉莫斯之舞

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個贊

所以這是我最喜歡的技術(shù)。不需要也是很奇怪的東西來找出部件的標(biāo)識。記住,這是為了讓你知道id來自頁面上任何位置的組件,而不是只是從實(shí)際組件本身。這是鑰匙。我按下一個按鈕,啟動javascript函數(shù),它應(yīng)該能夠訪問任何其他組件,而不僅僅是啟動它的那個組件。

此解決方案不需要任何“右鍵單擊”并查看id是什么。這種類型的解決方案是脆弱的,因?yàn)閕d是動態(tài)生成的,如果我更改頁面,我將不得不每次都經(jīng)歷這種胡說八道。

  1. 將組件綁定到支持bean。

  2. 在任何需要的地方引用綁定組件。

下面是一個如何做到這一點(diǎn)的例子。

假設(shè):我有一個*.xhtml頁面(可能是*.jsp),我已經(jīng)定義了一個支持bean。我還使用JSF2.0。

*.xhtml頁面

<script>
  function myFunc() {
    var inputText = document.getElementById("#{backBean.emailAddyInputText.clientId}")                 
    alert("The email address is: " + inputText.value );
  }</script><h:inputText binding="#{backBean.emailAddyInputText}"/><h:commandButton onclick="myFunc()" action="results" value="Next"/>

BackBean.java

UIInput emailAddyInputText;

也要確保為該屬性創(chuàng)建getter/setter。


查看完整回答
反對 回復(fù) 2019-06-29
?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個贊

ID是動態(tài)生成的,因此您應(yīng)該為所有父元素定義名稱,以避免j_id 123類ID。

請注意,如果您使用jQuery來選擇元素,則應(yīng)該在冒號之前使用雙斜杠:

    jQuery("my-form-id\\:my-text-input-block\\:my-input-id")

而不是:

    jQuery("my-form-id:my-text-input-block:my-input-id")

對于RichFaces,您可以在jsf頁面上使用el表達(dá)式:

    #{rich:element('native-jsf-input-id')}

要選擇javascript元素,例如:

    #{rich:element('native-jsf-input-id')}.value = "Enter something here";


查看完整回答
反對 回復(fù) 2019-06-29
  • 3 回答
  • 0 關(guān)注
  • 677 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號