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">
id
を_<p:inputText
_に追加します
このような
_<p:inputText id="someID" value="any text" widgetVar="youtlink" ></p:inputText>
_
フォームに_prependId="false"
_があることを確認してください
このような値にアクセスするよりも
_alert(jQuery('#someID').val());
_
フォームに_prependId="false"
_を追加したくない場合は、jqueryセレクターをjQuery('#someID').val()
からjQuery("[id$='someID']").val()
に変更する必要があります。
[〜#〜]編集[〜#〜]
フォームがeditlFrm
と呼ばれるので
これを試してください(必ずsomeIDIDを_p:inputText
_に割り当ててください)
_alert(jQuery('#editlFrm\\:someID').val());
_
同様のことをしようとしたときにこの質問に出くわし、PrimeFacesがjq
プロパティを介してウィジェットのJQuery要素を公開していることを発見しました。
したがって、あなたの例では、次のことを簡単に行うことができます。
_function loadPlayer() {
alert(youtlink.jq.val());
}
_
最近のPrimeFacesバージョン(5.0以降)では、エクスポートされたウィジェットはグローバル名前空間を汚染しないようですが、PF()
メソッドを使用してアクセスする必要があります。ただし、JQuery要素には引き続き同じ方法でアクセスできます。
_function loadPlayer() {
alert(PF('youtlink').jq.val());
}
_
私は最も簡単な方法だと思います:
PF('youtlink').jq.val();
次のように入力フィールドの値を設定することもできます。
PF('youtlink').jq.val('new value');
他の方法:
PrimeFaces.widgets.youtlink.jq.val()
iDをお持ちの場合は別の方法:
$(PrimeFaces.escapeClientId("yourFormID:youtlink")).val()
pF5.3でテスト済み
また、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);
}