次のようなprimefacesコンポーネントがある場合
<p:selectOneMenu id="myComponent">
...
</p:selectOneMenu>
html では、次のようなものが生成されます。
<div id="myFormName:myComponent" widgetVar="lollipop">
...A lot of things in here...
</div>
<script id="myFormName:myComponent_s">
$(function(){PrimeFaces.cw('SelectOneMenu','lollipop',.......
</script>
スクリプト タグ内で、ウィジェットの var 名に気付くことができます (コンポーネントで指定しない場合は、生成されます)。ウィジェットの var 要素を取得する方法を知りたいのですが、それが不可能な場合は、"" タグを取得して、このウィジェットの var の名前を取得する方法を教えてください。
------ 編集 ------ なぜこれが必要なのかを説明しようと思います。私はこの機能を持っています:
function simulaTabManoBrow(event){
var focusedComponent=document.activeElement;
if(event.keyCode==13){
//Cancel th edefault enter event(submit the form)
event.preventDefault();
event.stopPropagation();
event.returnValue = false;
event.cancelBubble = true;
if((focusedComponent.tagName.toLowerCase()=="input" && focusedComponent.type.toLowerCase()=="button") || focusedComponent.tagName.toLowerCase()=="button"){
//If the focused component is a button, click the button.
focusedComponent.click();
}else{
//Press the tab key programatically
$.emulateTab();
verifyOneMenu(campoFocado);
}
}
}
この関数は、本体の onkeydown イベントで実行されます。これの目的は、Enter キーのデフォルトの動作を Tab キーに置き換えることです。これの唯一の問題は、フォーカスされたコンポーネントが selectOneMenu であり、ユーザーが Enter キーを押すと、タブ キーのように正しく動作しますが、以前にフォーカスされていた selectOneMenu が開かれることです (これがコンポーネントのデフォルトの動作であるため)。
だから、私がやろうとしているのは、以前にフォーカスされたコンポーネントの selectOneMenu ウィジェット変数の close() メソッドを呼び出すことです。