Установить фокус на конец входного тега с помощью JavaScript - PullRequest
1 голос
/ 23 марта 2011

Salut.У меня есть некоторые проблемы с JavaScript ..

Я сделал переводчик скрипт, который позволяет грузинским пользователям печатать грузинский латинским алфавитом.Поэтому, когда я манипулирую входным тегом , я не могу установить фокус на конец текста ... правильно, курсор находится в конце текста, но если текст намного больше, чем входной тег, он должен прокручивается автоматически и не должен скрываться.

вот код ..

$(document).ready(function() {
    $(".geok").geokbd();
});
$.fn.geokbd = function() {
    symbols = "abgdevzTiklmnopJrstufqRySCcZwWxjh";
    this.relatedCheckbox = $("<input type=\"checkbox\" name=\"geokbd\" />").attr('checked', true);
    $(this).after(this.relatedCheckbox);
    $(this).keypress(
        function(e) {
            if ((e.charCode) == 96) {
                if ($(this).next('input').attr('checked')) {
                    $(this).next('input').attr('checked', false);
                } else {
                    $(this).next('input').attr('checked', true);
                }
                    return false;
                }
                if ($(this).next('input').attr('checked')) {
                    if ((index = symbols.indexOf(String.fromCharCode(e.charCode))) >= 0) {
                        ret = String.fromCharCode(index + 4304);
                            this.focus();
                            var scrollTop = this.scrollTop, 
                            start = this.selectionStart, 
                            end = this.selectionEnd;

                            var value = this.value.substring(0, start)  + ret + this.value.substring(end,this.value.length);

                            this.value = value;
                            this.scrollTop = scrollTop;
                            this.selectionStart = this.selectionEnd = start + ret.length;

                            return false;
                        }
                    }

                }
        );
}

спасибо

Ответы [ 3 ]

0 голосов
/ 23 марта 2011

Вы пробовали это:

function doSetCaretPosition (oField, iCaretPos) {
    // IE Support
    if (document.selection) {
        // Set focus on the element
        oField.focus ();
        // Create empty selection range
        var oSel = document.selection.createRange();
        // Move selection start and end to 0 position
        oSel.moveStart ('character', -oField.value.length);
        // Move selection start and end to desired position
        oSel.moveStart ('character', iCaretPos);
        oSel.moveEnd ('character', 0);
        oSel.select ();
    }
    // Firefox support
    else if (oField.selectionStart || oField.selectionStart == '0') {
        oField.selectionStart = iCaretPos;
        oField.selectionEnd = iCaretPos;
        oField.focus ();
    }
}
$(document).ready(function() {
    $("#yourElement").focus();
    doSetCaretPosition(document.getElementById("yourElement"),999);
});  

(источник: http://www.webdeveloper.com/forum/archive/index.php/t-74982.html)

0 голосов
/ 26 июня 2014

Есть несколько хороших ответов от

Используйте JavaScript, чтобы поместить курсор в конец текста в элементе ввода текста

Например, вы можете использовать

        <input id="search" type="text" value="mycurrtext" size="30" 
        onfocus="this.value = this.value;" name="search"/>

Или вы можете использовать плагин JQuery: PutCursorAtEnd.Автор даже разместил там исходный код, и я проверил, что это работает для Opera.

0 голосов
/ 23 марта 2011

получить id последнего входного тега и заменить name на этот идентификатор, ниже приведена базовая логика

<script type="text/javascript">
function setFocus()
{
     document.getElementById("name").focus();
}
</script>
</head>

<body onload="setFocus()">
  <form>
       Name: <input type="text" id="name" size="30"><br />
       Surname: <input type="text" id="surname" size="30"> 
  </form>
</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...