cri*_*sys 12 javascript jquery primefaces
我正在尝试一些简单的方法,只是为了在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>
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用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">
Run Code Online (Sandbox Code Playgroud)
Dan*_*iel 12
加入id你的<p:inputText
像这样
<p:inputText id="someID" value="any text" widgetVar="youtlink" ></p:inputText>
Run Code Online (Sandbox Code Playgroud)
确保你的表格得到了 prependId="false"
比访问这样的值
alert(jQuery('#someID').val());
Run Code Online (Sandbox Code Playgroud)
如果您不想添加prependId="false"到表单,则必须将jquery选择器从更改jQuery('#someID').val()为jQuery("[id$='someID']").val()
编辑
因为你的表格叫做 editlFrm
试试这个(确保为你分配一些 ID ID p:inputText)
alert(jQuery('#editlFrm\\:someID').val());
Run Code Online (Sandbox Code Playgroud)
我在尝试做类似的事情时遇到了这个问题,并发现PrimeFaces通过jq属性公开了一个widget的JQuery元素.
所以在你的例子中,你可以简单地做:
function loadPlayer() {
alert(youtlink.jq.val());
}
Run Code Online (Sandbox Code Playgroud)
在最近的PrimeFaces版本(从5.0开始),导出的小部件似乎不再污染全局命名空间,但需要使用该PF()方法进行访问.但是,仍然可以以相同的方式访问JQuery元素.
function loadPlayer() {
alert(PF('youtlink').jq.val());
}
Run Code Online (Sandbox Code Playgroud)
我认为最简单的方法是:
PF('youtlink').jq.val();
Run Code Online (Sandbox Code Playgroud)
您甚至可以这样设置输入字段的值:
PF('youtlink').jq.val('new value');
Run Code Online (Sandbox Code Playgroud)
另一种方式:
PrimeFaces.widgets.youtlink.jq.val()
Run Code Online (Sandbox Code Playgroud)
另一种方式,如果您有ID:
$(PrimeFaces.escapeClientId("yourFormID:youtlink")).val()
Run Code Online (Sandbox Code Playgroud)
用PF 5.3测试