0

いくつかの情報をロードしましたh:outputTextが、ボタンをクリックして、outputText からそのテキストを取得する JS 関数をトリガーしたいと考えています。

構造は次のとおりです。

<p:tabView id="tabView">
    <p:tab id="tabInvitator" title="Invitator">
         <h:form id="formInvitator">  
              <h:outputText id="inv" value="#{myController.selectedUsersFB}" />

...

しかし、JS 関数document.getElementsById("tabView:tabInvitator:formInvitator:inv")では機能しません。Web アプリを再起動します。

そのデータを取得して、JS 関数で操作したいだけです。
助言がありますか?

アップデート:

私はBalusCが提案したことを試しました。ここに私の試みがあります:

   function test(){
            var arr = document.getElementsByName("tabView:tabInvitator:formInvitator:inv");
            console.log(arr);
            console.log('Arr: '+arr);
            console.log('Length: '+arr.length);

最初のログの戻り値: [ ]、2 番目のログの戻り値: Arr: [object NodeList]、3 番目のログ: 長さ: 0

ログが異なるものを返すのはなぜですか? さて、h:outputText からのテキストを想定している場合、どのようにそのオブジェクト NodeList にアクセスできますか?

以下の私の答えの解決策

4

1 に答える 1

0

まず第一に、更新したいのは一意の ID であるため、JS 呼び出しは次のようになります。document.getElementById (...) (複数形ではありません - getElementsById -)値、通常はテキスト。

そして、私の例に従って、最初にoutputTextを更新したい場合、その後、JS関数でその情報を取得します。最初にフィールドを更新し(このフィールドはタグから外します)、oncompleteこれで、JS 関数を呼び出します。

<p:tabView id="tabView">
  <p:tab id="tabInvitator" title="Invitator">
     <h:form id="formInvitator">
         <p:commandButton value="Invite" icon="ui-icon-comment"  update=":inv" oncomplete="sendRequestViaMultiFriendSelectorSelected();"/>
     </h:form>
  </p:tab>
</p:tabView>

<h:outputText id="inv" value="#{myController.selectedUsersFB}" />

および Javascript 関数:

function sendRequestViaMultiFriendSelectorSelected() {
          var arr = document.getElementById("inv");
          console.log(arr.childNodes[0]);
          if(arr.childNodes[0]){
              console.log(arr.childNodes[0].data);
          }
          ...
}

それが誰かを助けることを願っています;)

于 2013-07-02T16:00:50.920 に答える