Как я могу решить эту проблему onclick-onblur? - PullRequest
0 голосов
/ 24 августа 2011

У меня есть форма. В нем у меня есть текстовая область, которая расширяется при нажатии. Но есть небольшая проблема: Когда пользователь пытается отправить форму (нажмите кнопку «Отправить»), текстовое поле возвращается к своему обычному размеру. Это потому, что он использует функцию onblur. Я хочу устранить эту неловкость, потому что пользователь должен дважды нажать кнопку отправки, чтобы отправить форму.

Что я должен сделать, чтобы он работал одним щелчком мыши?

Ответы [ 2 ]

4 голосов
/ 24 августа 2011

Вы можете установить короткий тайм-аут в обработчике onblur, который сжимает текстовую область:

document.getElementById("textareaID").onblur = function () {
    var target = this;
    setTimeout( function () {
        //Code to shrink the textarea, use "target" instead of "this" for scoping reasons.
    }, 250);

}
3 голосов
/ 24 августа 2011
textArea.addEventListener('blur', function(e) {
    e.preventDefault();
    return false;
}, true);

Это добавит слушателя к событию blur, что предотвратит запуск всего остального, включая то, что вызывает изменение размера textarea.Для вас было бы проще , а не добавить хук blur в первую очередь, а не поймать его таким образом.

...