Консультация № 72285
23.01.2007, 17:29
0.00 руб.
0 2 2
Здравствуйте,
У меня большая форма. Юзеры вместо Таб используют по привычке Enter. Что можно сделать, чтобы он работал как Таб.

Зарнее багодаре,
Владимир

Обсуждение

Неизвестный
23.01.2007, 17:58
общий
это ответ
Доброе время суток, I-Vladimir

лучшим решением здесь будет проверка полей на заполненность, и, в случае, если не все обязательные поля заполнены - выводить ругательное сообщение и отменять отправку

событие, отвечающее за отправку onsubmit - передайте ему ссылку на функцию, обрабатывающую его

с уважением, удачи
Неизвестный
23.01.2007, 19:10
общий
это ответ
Здравствуйте, Владимир Яхненко!

В дебрях своей машины нашел скрипт, который выполняет нужные Вам действия.
:о)

Смотрите приложение (готовый Html-документ на котором расположено 4 поля ввода....)

Good Luck!!!

Приложение:
<script language="JavaScript"> nextfld = "pole1"; // название первого поля ввода netscape = ""; ver = navigator.appVersion; len = ver.length; for(iln = 0; iln < len; iln++) if (ver.charAt(iln) == "(") break; netscape = (ver.charAt(iln+1).toUpperCase() != "C");function keyDown(DnEvents){ k = (netscape) ? DnEvents.which : window.event.keyCode; if (k == 13) { if (nextfld == ‘done‘) return true; //если пришли к последнему обеъкту то дальше не двигаемся else { eval(‘document.yourform.‘ + nextfld + ‘.focus()‘); return false;} }} document.onkeydown = keyDown; if (netscape) document.captureEvents(Event.KEYDOWN|Event.KEYUP);</script><center><form name=yourform>Поле 1: <input type=text name=pole1 onFocus="nextfld =‘pole2‘;">
Поле 2: <input type=text name=pole2 onFocus="nextfld =‘pole3‘;">
Поле 3: <input type=text name=pole3 onFocus="nextfld =‘pole4‘;">
Поле 4: <input type=text name=pole4 onFocus="nextfld =‘done‘;">
<input type=submit name=done value="Ок"></form></center>
Форма ответа