Программирование > JavaScript & JScript
Ситуевина с формочками и кнопочками
ekeeper:
короче загадка!
есть html форма и у нее две кнопы типа submit
результат зависит - от конкретно нажатой кнопы
короче кнопы по умолчанию считаются слева на право
то есть если ты на форме нажмешь ентер, то браузер посчитает, что якобы нажата кнопа - и она будет самой левой что встретиться в html
задача - сделать так, чтобы по ентеру нажималась нужная кнопа, и пофиг на каком месте формы она стоит
в тэг каждого элемента формы вписываю:
--- Цитировать ---onkeypress="return SendMsg(event)"
--- Конец цитаты ---
а вот функция:
--- Цитировать ---function SendMsg(event){
if (event.keyCode==10){
document.form_name.submit_button_name.click();
return false;
}
return true;
}
--- Конец цитаты ---
результат - форма в любом случае отправляется - но результат после отправки такой, если бы была нажата самая левая кнопа.
з.ы. сразу говорю, переставить кнопы местами - не судьба.
Denis_Ap:
ekeeper
А что, если так:
--- Код: ---
...
onkeydown="return SendMsg(event)"
....
function SendMsg(evt)
{
evt = (evt) ? evt : event;
var charCode = (evt.charCode) ? evt.charCode : ( (evt.which) ? evt.which : evt.keyCode );
if( charCode == 13 )
{
document.form_name.submit_button_name.click();
return false;
}
else
return true;
}
.....
--- Конец кода ---
ekeeper:
невыходит
Denis_Ap:
Да, согласен. не получается. что тут неверно, так это строка
--- Код: ---
document.form_name.submit_button_name.click();
--- Конец кода ---
(мне так кажется)
Если, например, вместо нее поставить alert(\'ok\'), то все нормально: и ентер блокируется, и алерт появляется.
Узнай как правильно сымитировать нажатие кнопки в форме...
ekeeper:
вы уверены?
Вот тест:
--- Цитировать ---function SendMsg(event){
alert(\'ok1\');
evt = (evt) ? evt : event;
var charCode = (evt.charCode) ? evt.charCode : ( (evt.which) ? evt.which : evt.keyCode );
if (charCode==13){
alert(\'ok2\');
return false;
}
return true;
}
--- Конец цитаты ---
сообщение ok1 выводиться - если нажата любая клавиша
если на жать ентер по идее должно выскочить сообщение с ok2 - вот и не выскакивает.
Навигация
Перейти к полной версии