Установка фокуса в текстовом поле с помощью jQuery - PullRequest
2 голосов
/ 26 февраля 2010

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

Обратите внимание, что это текстовое поле имеет форму, и я также использовал индекс табуляции здесь. Когда я щелкнул ок в предупреждении, он переместил фокус на следующее текстовое поле с индексом следующей вкладки.

Вот мой код:

<script type="text/javascript">

    function pageLoad() {
        $("input[id$='txtEmailAddress']").blur(CheckOnServer);
    }

    function CheckOnServer() {
        alert($("input[id$='txtEmailAddress']").val());
        $("input[id$='txtEmailAddress']").val("");
        $("input[id$='txtEmailAddress']").focus();
        alert("2");
    }
</script>

Ответы [ 2 ]

2 голосов
/ 26 февраля 2010

Если существует более одного поля, заканчивающегося на «txtEmailAddress», не будет ли ваш код пытаться назначить фокус для каждого из них одновременно? Я думаю, что неправильное поле получает фокус, потому что $(input[id$='txtEmailAddress'] не является единственным элементом DOM, и jQuery не предназначен для запуска функции фокуса на массиве объектов.

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

1 голос
/ 26 февраля 2010

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

Когда input[id$='txtEmailAddress'] теряет фокус, сделайте что-нибудь и снова дайте ему фокус. Это будет бесконечный цикл ...

Относительно того, почему неправильное поле получает фокус, я понятия не имею, чем Бен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...