12

p:inputText思考のJavascript内のテキスト値を取得するために、単純なことを試みていますが、取得できません。おそらく、Primefacesの場合とは異なる手順です。これを使用しないと、問題が発生しないためです。

私のコード:

<p:inputText value="any text" widgetVar="youtlink" ></p:inputText>
        <p:commandButton value="Search"    onclick="loadPlayer();" icon="ui-icon-search" />  


<script type="text/javascript">
    function loadPlayer() {
        alert(youtlink.text);
    }
</script>

JQueryでも試しましたが、成功しませんでした。

レンダリングされたビュー:

<form id="editlFrm" enctype="application/x-www-form-urlencoded" method="post"
name="editlFrm">
    <input id="editlFrm:j_id_7" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all"
    type="text" value="assd" name="editlFrm:j_id_7" role="textbox" aria-disabled="false"
    aria-readonly="false" aria-multiline="false">
    <button id="editlFrm:j_id_8" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left"
    type="submit" onclick="loadPlayer();;PrimeFaces.ab({source:'editlFrm:j_id_8'});return false;"
    name="editlFrm:j_id_8" role="button" aria-disabled="false">
4

4 に答える 4

12

idあなたに追加<p:inputText

このような

<p:inputText id="someID" value="any text" widgetVar="youtlink" ></p:inputText>

フォームが取得したことを確認してくださいprependId="false"

このような値にアクセスするよりも

alert(jQuery('#someID').val());

フォームに追加したくない場合は、jqueryセレクターをからにprependId="false"変更する必要がありますjQuery('#someID').val()jQuery("[id$='someID']").val()


編集

あなたのフォームがeditlFrm

これを試してください(必ずsomeID idをに割り当ててくださいp:inputText

alert(jQuery('#editlFrm\\:someID').val());
于 2012-07-19T10:26:32.993 に答える
9

同様のことをしようとしたときにこの質問に出くわし、PrimeFacesがjqプロパティを介してウィジェットのJQuery要素を公開していることを発見しました。

したがって、あなたの例では、次のようにすることができます。

function loadPlayer() {
    alert(youtlink.jq.val());
}

最近のPrimeFacesバージョン(5.0以降)では、エクスポートされたウィジェットはグローバル名前空間を汚染しないようですが、PF()メソッドを使用してアクセスする必要があります。ただし、JQuery要素には引き続き同じ方法でアクセスできます。

function loadPlayer() {
    alert(PF('youtlink').jq.val());
}
于 2014-10-06T04:59:52.097 に答える
7

私は最も簡単な方法だと思います:

PF('youtlink').jq.val();

入力フィールドの値は次のように設定できます。

PF('youtlink').jq.val('new value');

他の方法:

PrimeFaces.widgets.youtlink.jq.val()

IDをお持ちの場合は別の方法:

$(PrimeFaces.escapeClientId("yourFormID:youtlink")).val()

PF5.3でテスト済み

于 2016-09-26T10:11:59.067 に答える
0

また、javascriptを使用した簡単な方法があります。

<h:form id="yourID" >
    <p:inputText id="anyID" value="any text" widgetVar="youtlink" ></p:inputText>
</h:form>

function loadPlayer() {
    alert(document.getElementById('yourID:anyID').value);
}
于 2016-05-02T14:15:36.920 に答える