Автор Тема: Ситуевина с формочками и кнопочками  (Прочитано 8083 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ekeeper

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 31
  • +0/-0
  • 0
    • Просмотр профиля
    • http://livejournal.com/~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;
}

результат - форма в любом случае отправляется - но результат после отправки такой, если бы была нажата самая левая кнопа.

з.ы. сразу говорю, переставить кнопы местами - не судьба.
« Последнее редактирование: 11 Августа 2005, 13:58:47 от ekeeper »

Оффлайн Denis_Ap

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ситуевина с формочками и кнопочками
« Ответ #1 : 11 Августа 2005, 14:55:29 »
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

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 31
  • +0/-0
  • 0
    • Просмотр профиля
    • http://livejournal.com/~ekeeper
Ситуевина с формочками и кнопочками
« Ответ #2 : 11 Августа 2005, 16:42:20 »
невыходит

Оффлайн Denis_Ap

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ситуевина с формочками и кнопочками
« Ответ #3 : 11 Августа 2005, 18:17:55 »
Да, согласен. не получается. что тут неверно, так это строка

document.form_name.submit_button_name.click();

(мне так кажется)
Если, например, вместо нее поставить alert(\'ok\'), то все нормально: и ентер блокируется, и алерт появляется.
Узнай как правильно сымитировать нажатие кнопки в форме...

Оффлайн ekeeper

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 31
  • +0/-0
  • 0
    • Просмотр профиля
    • http://livejournal.com/~ekeeper
Ситуевина с формочками и кнопочками
« Ответ #4 : 12 Августа 2005, 10:07:06 »
вы уверены?

Вот тест:

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

Оффлайн Denis_Ap

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ситуевина с формочками и кнопочками
« Ответ #5 : 12 Августа 2005, 11:41:29 »
ekeeper
Хм. Странно, странно... У меня выводит ок1 при нажатии эни кей;   ok1 и ок2 при нажатии ентер.
Попробуйте вот этот код:

......
function SendMsg(event){
evt = (evt) ? evt : event;
var charCode = (evt.charCode) ? evt.charCode : ( (evt.which) ? evt.which : evt.keyCode );
if (charCode==13){
document.getElementById("gu").click();
return false;
}
return true;
}
......






.......

У меня этот вариант при нажатии ентер в поле "ss" вызывает функцию "Kogo-to_tam()".
з.ы. Проверяйте работу этого кода сразу в IE. У меня, например, не все срабатывает при проверке в редакторе 1st Page 2000.

Оффлайн ekeeper

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 31
  • +0/-0
  • 0
    • Просмотр профиля
    • http://livejournal.com/~ekeeper
Ситуевина с формочками и кнопочками
« Ответ #6 : 12 Августа 2005, 11:47:39 »
Цитировать
Denis_Ap:
У меня выводит ок1 при нажатии эни кей; ok1 и ок2 при нажатии ентер.

Может от каких настроек зависит браузера?

Оффлайн ekeeper

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 31
  • +0/-0
  • 0
    • Просмотр профиля
    • http://livejournal.com/~ekeeper
Ситуевина с формочками и кнопочками
« Ответ #7 : 12 Августа 2005, 11:57:59 »
Цитировать
Denis_Ap:
ВО... был бы  type="submit" не сработало бы

Оффлайн ekeeper

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 31
  • +0/-0
  • 0
    • Просмотр профиля
    • http://livejournal.com/~ekeeper
Ситуевина с формочками и кнопочками
« Ответ #8 : 12 Августа 2005, 12:18:40 »
Цитировать
Denis_Ap:
У меня этот вариант при нажатии ентер в поле "ss" вызывает функцию "Kogo-to_tam()". з.ы. Проверяйте работу этого кода сразу в IE. У меня, например, не все срабатывает при проверке в редакторе 1st Page 2000.

прям скопировал код. Подставил свои функции
Kogo-to_tam() - document.form_name.submit() - форму то отправить надо.
Когда жмешь ентер в поле вылетает ошибка "evt" - определение отсутствует :)

короче не пашет :(

Оффлайн Denis_Ap

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ситуевина с формочками и кнопочками
« Ответ #9 : 12 Августа 2005, 12:40:59 »
Блин, вот ведь зацепила твоя проблема :)
Мот я чего-то недопонимаю, но я сделал так:

.....


...

и в результате, выполняется ф-ция "kogo-To_Tam()" и данные отправляются.
Например, если

function kogo-To_Tam()
{
  alert("OKKK!");
}

, то выводится сигнал "OKKK!", нажимаешь Ок и данные отправляются.
Чес слово, непонятненько че-то...

Оффлайн Denis_Ap

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ситуевина с формочками и кнопочками
« Ответ #10 : 12 Августа 2005, 12:44:06 »
а какой результат тебе нужен?
Что должна делать функция   kogo-to_tam() перед отправкой?

Оффлайн ekeeper

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 31
  • +0/-0
  • 0
    • Просмотр профиля
    • http://livejournal.com/~ekeeper
Ситуевина с формочками и кнопочками
« Ответ #11 : 12 Августа 2005, 14:38:08 »
получилось

я отмазался

ввел скрытое поле, получилось:
Цитировать


onClick="document.param_f.set_filter.value=\'1\';">


Функция:
Цитировать
         function SendMsg(event){
          if (event.keyCode==13){
            document.form_name.set_filter.value="1";
            document.form_name.submit();
               return false;
             }
             return true;


а раньше нужная кнопа имела имя set_filter, а у второй кнопы имени не было - то есть после отправки анализировал - если set_filter - определена - один результат - если нет - другой
« Последнее редактирование: 12 Августа 2005, 15:32:26 от ekeeper »

Оффлайн Denis_Ap

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ситуевина с формочками и кнопочками
« Ответ #12 : 15 Августа 2005, 12:43:21 »
Хм. интересно...  Надо будет запомнить...:)
Good luck

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Ситуевина с формочками и кнопочками
« Ответ #13 : 15 Августа 2005, 12:47:04 »
ekeeper Denis_Ap
Я понимаю, что уже 2L8, но всё же:
а кто мешал сделать одну кнопку (нужную) type="submit",
а вторую type="button" onClick="form.submit();" ?
LJ: Backslashed life (rss)

Оффлайн ekeeper

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 31
  • +0/-0
  • 0
    • Просмотр профиля
    • http://livejournal.com/~ekeeper
Ситуевина с формочками и кнопочками
« Ответ #14 : 15 Августа 2005, 14:21:17 »
Цитировать
CGVictor:
Я понимаю, что уже 2L8, но всё же: а кто мешал сделать одну кнопку (нужную) type="submit", а вторую type="button" onClick="form.submit();" ?

Все можно многократно оптимизировать. Тут же сырой вариант, мол работает и душе радостно. А теперь напильничком...

 

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