Страница 1 из 1

JAVA: фокус на веб-форме нужен в конце вводимого текста

Добавлено: 20.03.2012 16:00
Гость
есть фрагмент кода (из файла *.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)

Re: JAVA: фокус на веб-форме нужен в конце вводимого текста

Добавлено: 20.03.2012 17:21
Джимми
http://blog.vishalon.net/index.php/java ... -textarea/" onclick="window.open(this.href);return false;

Re: JAVA: фокус на веб-форме нужен в конце вводимого текста

Добавлено: 20.03.2012 23:06
Гость
cпасибо! А такая "жесть" и вправду необходима??

Re: JAVA: фокус на веб-форме нужен в конце вводимого текста

Добавлено: 21.03.2012 00:11
Джимми
Гость писал(а):cпасибо! А такая "жесть" и вправду необходима??
незнаю, тебе видней :D
тебе надо у активного элемента позицию каретки переставить.
можешь на эту тему погуглить

Re: JAVA: фокус на веб-форме нужен в конце вводимого текста

Добавлено: 21.03.2012 14:49
Гость
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>

Re: JAVA: фокус на веб-форме нужен в конце вводимого текста

Добавлено: 21.03.2012 18:29
Джимми
Это же пример просто был.
У тея на странице есть input - текстбокс. Сначала ему ставят фокус - это когда он активный становится. Когда у него фокус, то появляется каретка - это такая палочка мигающая. Эту каретку можно поставить в нужную тебе позицию джаваскриптом,
наверно тебе надо что-то вроде
oncomplete="document.getElementById('myFrm:itxt_Cmp1').focus(); setCaretPosition(document.getElementById('myFrm:itxt_Cmp1'), <куда ставить каретку>); "

Но ты бы лучше попросил кого-то, кто разбирается тебе помочь. :)

Re: JAVA: фокус на веб-форме нужен в конце вводимого текста

Добавлено: 10.04.2012 16:52
Anri
позвольте полюбопытствовать а какой целевой девайс? если вы предпологаете что-то из гаджетов, то там focus() не получится, паскольку фокусник пьян :)