Moje li Enter da ne submit-va forma ?

7 отговора 361 прегледа
#1

Moje li Enter da ne submit-va forma ?

Po princip pri natiskane na Enter , forma-a se submitva ....
v konkretniya sluchai tryabva enter da igrae rolyata na TAB - t.e. da ne submitva Forma-ta a da smenya fokusa na sledvashtiya <input>

Prichina : Klientite sa sviknali na nastolno prilojenie, koeto sega se iznasya s identichen interface v WEB ...mashinalno natiskat Enter oshte sled purviya input i submit-vat formata rpredi da sa ya populnili ...

Ima li reshenie ?

Отговор
в отговор на FullScream #2

Re: Moje li Enter da ne submit-va forma ?

Да, направи субмита с джаваскрипт. Но ентера да действа като табулатор ще е по-трудно.

Отговор
в отговор на FullScream #3

Може разбира се:

<SCRIPT LANGUAGE="JavaScript">
<!--
function focusttonextcontrol(f) {
if (f)
f.submit();
if (event.keyCode==13)
event.keyCode=9;
}
//-->
</SCRIPT>

<FORM METHOD=POST ACTION="[линк]" name=f>
<INPUT TYPE="text" NAME="" onKeyDown="focusttonextcontrol();">
<INPUT TYPE="text" NAME="" onKeyDown="focusttonextcontrol();">
<INPUT TYPE="text" NAME="" onKeyDown="focusttonextcontrol(f);">
</FORM>

Само обърни внимание, че двата червени F трябва да бъдат едно и също! По този начин, при натискане на ентер в полетата, фокуса ще се прехвърля в следващото поле, а когато стигне на последното поле (полето, което има параметър червения f)- формата ще се събмитне след ентера! Не прилагай скрипта към textarea!

И апропо, друг път ползвай [линк] Ако обърнеш внимание, още първия резултат ти върши работа!

БАба...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на БaбaИлиицa #4

Re: Може разбира се:

Така не е ли по-елегантно и опростено? Няма нужда във всяко поле да се вика фунция, работи и в textarea. Сложи го къде да е в страницата си.

<script>
function mykeyhandler() {
if (window.event && window.event.keyCode == 13) {
window.event.keyCode = 9;
}
}
document.onkeydown = mykeyhandler;
</script>

Отговор
в отговор на mr.vain #5

зависи!

Може и така, както си го дал, обаче има три недостатъка:

1. Където и да натиснеш ентер, ще се преобразува в tab... Дори и да не си в поле!

2. Не можеш да събмитнеш формата с ентер в последното поле!

3. Както казах, в textarea не трябва да се слага скрипта, защото при ентер там трябва да сложи нов ред, а не да те фокусира на следващото поле (иначе няма смисъл да е textarea!

Да не решиш, че се заяждам с теб :)

БАба...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на БaбaИлиицa #6

Re: зависи!

Но е добре да се проверява за window.event , както mr.vain прави, защото иначе скрипта ще предизвиква много грешки (ако е направено по този начин с функция) в Mozillа (и всеки друг браузър, който не поддържа window.event). e.g.:

function focusttonextcontrol(f) {
if (f)
f.submit();
if (window.event && event.keyCode==13)
event.keyCode=9;
}

Също това:
<FORM METHOD=POST ACTION="[линк]" name=f>
<INPUT TYPE="text" NAME="" onKeyDown="focusttonextcontrol();">
<INPUT TYPE="text" NAME="" onKeyDown="focusttonextcontrol();">
<INPUT TYPE="text" NAME="" onKeyDown="focusttonextcontrol(f);">
</FORM>

би трябвало да изглежда така:

<FORM METHOD=POST ACTION="[линк]" name=f>
<INPUT TYPE="text" NAME="" onKeyDown="focusttonextcontrol();">
<INPUT TYPE="text" NAME="" onKeyDown="focusttonextcontrol();">
<INPUT TYPE="text" NAME="" onKeyDown="focusttonextcontrol(document.forms['f']);">
</FORM>

за да работи в други браузъри освен IE.

- - - -
[линк] - най-добрите DHTML менюта.

Редактирано от smartmenus на

Отговор
в отговор на mr.vain #7

Re: Може разбира се:

Adski elegantno :)
THANKS A LOT !!!
100% vurshi rabota ...t.k . klientskata chast e vinagi i samo IE4/5/6
Ne mi tryabva vaobshte submitvane s Enter

Po princip polzvam Google za podobni neshta .... no tozi put ne sajelyavam che popitah :) ..

Oshte vednaj Mersi :)

Отговор