2009-10-28 4 views
0

У меня есть 25 компонентов, которые включают в себя [textarea, textfile, radio, combo и т. Д.], И я написал ключевое событие, чтобы после ввода «ENTER» я вызываю функцию, которая будет отправлять страница.Определить местоположение курсора

Теперь моя страница отправляется, когда я нажимаю кнопку ввода, даже в текстовом поле, которого не должно быть. Так есть ли способ, которым я не могу отправить страницу, если она нажата в текстовой области?

Это происходит только в IE7 и IE8; он работает правильно во всех других браузерах.

+1

Я не совсем уверен, почему вы должны сделать это , Если вы просто используете нормальный '

', то это поведение, которое вы получите, чтобы не писать какие-либо хрупкие скрипты. Если вы хотите захватить представление, чтобы сделать что-то другое, кроме значения по умолчанию, например. некоторые AJAX, поместите этот код в 'form.onsubmit'. – bobince

ответ

0

Возможно, вы обнаружите, что любое текстовое поле и т. Д. Не заполнено/emtpy/unset. если все они заполнены должным образом, отправьте форму.

0

Вы приложили «ключевое событие» ко всей форме? Все DOM? если вы это сделали, это нормальное поведение.

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

0

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

+0

У меня есть функция, где я решительно отправляю страницу на ввод. и его больше не дефолт. так что теперь это код if (browserName == "Microsoft Internet Explorer" && elements [item] .getAttribute ("type") == "submit") { event.returnValue = false; event.cancel = true; элементы [item] .click(); возвращение; } так что теперь, прежде чем нажимать, если я могу проверить, находится ли курсор в textarea, я не буду нажимать Как получить компонент, где находится курсор? – pradheep

+0

Извините, я не думаю, что понимаю. Почему у вас есть код для ввода ввода? Форма не делает то, что вы хотите, когда вы удаляете код? Если нет, как это отличается от того, что вы хотите? –

0

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

$(document).ready(function(){ 
$('textarea').keypress(function(e){ 
    var key = (window.event) ? e.keyCode : e.which; 
    if (key == 13) { 
    return false; 
    } else { 
    return true; 
    } 
}) 
}) 
Смежные вопросы