есть фрагмент кода (из файла *.xhtml):
<h:inputText id="itxt_Cmp1" value="#{mySeamBean.cmptext1}" >
<a:support event="onkeyup" reRender="itxt_Cmp1" for="itxt_Cmp1"
oncomplete="document.getElementById('myFrm:itxt_Cmp1').focus()"
/>
</h:inputText>
внутри класса (mySeamBean.cmptext1) введенный текст побуквенно перекодируется (с латыни на кириллицу). Вроде всё работает правильно, за исключением одного: курсор после каждого нажатия (= введенной новой буквы!) "садится" в НАЧАЛО вводимого текста, а не в конец! Как исправить сие??
(Платформа: Jboss-Seam)
JAVA: фокус на веб-форме нужен в конце вводимого текста
Re: JAVA: фокус на веб-форме нужен в конце вводимого текста
http://blog.vishalon.net/index.php/java ... -textarea/" onclick="window.open(this.href);return false;
потому что Джим каждое утро делает зарядку
-
Гость
Re: JAVA: фокус на веб-форме нужен в конце вводимого текста
cпасибо! А такая "жесть" и вправду необходима??
Re: JAVA: фокус на веб-форме нужен в конце вводимого текста
незнаю, тебе виднейГость писал(а):cпасибо! А такая "жесть" и вправду необходима??
тебе надо у активного элемента позицию каретки переставить.
можешь на эту тему погуглить
потому что Джим каждое утро делает зарядку
-
Гость
Re: JAVA: фокус на веб-форме нужен в конце вводимого текста
cовершенно не понятно как это хозяйство применять?! Вот так например не работает:
<script type="text/javascript">
function doGetCaretPosition (ctrl) {
var CaretPos = 0;
ctrl.focus ();
// IE Support
if (document.selection) {
ctrl.focus ();
var Sel = document.selection.createRange ();
Sel.moveStart ('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionStart;
return (CaretPos);
}
function setCaretPosition(ctrl, pos){
if(ctrl.setSelectionRange)
{
ctrl.focus();
ctrl.setSelectionRange(pos,pos);
}
else if (ctrl.createTextRange) {
var range = ctrl.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
</script>
...
<h:inputText id="itxt_Cmp1" value="#{mySeamBean.cmptext1}" >
<a:support event="onkeyup" reRender="itxt_Cmp1" for="itxt_Cmp1"
oncomplete="doGetCaretPosition(this);"
/>
</h:inputText>
<script type="text/javascript">
function doGetCaretPosition (ctrl) {
var CaretPos = 0;
ctrl.focus ();
// IE Support
if (document.selection) {
ctrl.focus ();
var Sel = document.selection.createRange ();
Sel.moveStart ('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionStart;
return (CaretPos);
}
function setCaretPosition(ctrl, pos){
if(ctrl.setSelectionRange)
{
ctrl.focus();
ctrl.setSelectionRange(pos,pos);
}
else if (ctrl.createTextRange) {
var range = ctrl.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
</script>
...
<h:inputText id="itxt_Cmp1" value="#{mySeamBean.cmptext1}" >
<a:support event="onkeyup" reRender="itxt_Cmp1" for="itxt_Cmp1"
oncomplete="doGetCaretPosition(this);"
/>
</h:inputText>
Re: JAVA: фокус на веб-форме нужен в конце вводимого текста
Это же пример просто был.
У тея на странице есть input - текстбокс. Сначала ему ставят фокус - это когда он активный становится. Когда у него фокус, то появляется каретка - это такая палочка мигающая. Эту каретку можно поставить в нужную тебе позицию джаваскриптом,
наверно тебе надо что-то вроде
oncomplete="document.getElementById('myFrm:itxt_Cmp1').focus(); setCaretPosition(document.getElementById('myFrm:itxt_Cmp1'), <куда ставить каретку>); "
Но ты бы лучше попросил кого-то, кто разбирается тебе помочь.
У тея на странице есть input - текстбокс. Сначала ему ставят фокус - это когда он активный становится. Когда у него фокус, то появляется каретка - это такая палочка мигающая. Эту каретку можно поставить в нужную тебе позицию джаваскриптом,
наверно тебе надо что-то вроде
oncomplete="document.getElementById('myFrm:itxt_Cmp1').focus(); setCaretPosition(document.getElementById('myFrm:itxt_Cmp1'), <куда ставить каретку>); "
Но ты бы лучше попросил кого-то, кто разбирается тебе помочь.
потому что Джим каждое утро делает зарядку
Re: JAVA: фокус на веб-форме нужен в конце вводимого текста
позвольте полюбопытствовать а какой целевой девайс? если вы предпологаете что-то из гаджетов, то там focus() не получится, паскольку фокусник пьян 