Программирование > JavaScript & JScript

Ситуевина с формочками и кнопочками

(1/4) > >>

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 - вот и не выскакивает.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии