Moje li Enter da ne submit-va forma ?
7 отговора
361 прегледа
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 ?
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 ?
Re: Moje li Enter da ne submit-va forma ?
Да, направи субмита с джаваскрипт. Но ентера да действа като табулатор ще е по-трудно.
Може разбира се:
<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!
И апропо, друг път ползвай [линк] Ако обърнеш внимание, още първия резултат ти върши работа!
БАба...
Ама баба не е жена, вие не знаете ли?
<!--
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!
И апропо, друг път ползвай [линк] Ако обърнеш внимание, още първия резултат ти върши работа!
БАба...
Ама баба не е жена, вие не знаете ли?
Re: Може разбира се:
Така не е ли по-елегантно и опростено? Няма нужда във всяко поле да се вика фунция, работи и в textarea. Сложи го къде да е в страницата си.
<script>
function mykeyhandler() {
if (window.event && window.event.keyCode == 13) {
window.event.keyCode = 9;
}
}
document.onkeydown = mykeyhandler;
</script>
<script>
function mykeyhandler() {
if (window.event && window.event.keyCode == 13) {
window.event.keyCode = 9;
}
}
document.onkeydown = mykeyhandler;
</script>
зависи!
Може и така, както си го дал, обаче има три недостатъка:
1. Където и да натиснеш ентер, ще се преобразува в tab... Дори и да не си в поле!
2. Не можеш да събмитнеш формата с ентер в последното поле!
3. Както казах, в textarea не трябва да се слага скрипта, защото при ентер там трябва да сложи нов ред, а не да те фокусира на следващото поле (иначе няма смисъл да е textarea!
Да не решиш, че се заяждам с теб :)
БАба...
Ама баба не е жена, вие не знаете ли?
1. Където и да натиснеш ентер, ще се преобразува в tab... Дори и да не си в поле!
2. Не можеш да събмитнеш формата с ентер в последното поле!
3. Както казах, в textarea не трябва да се слага скрипта, защото при ентер там трябва да сложи нов ред, а не да те фокусира на следващото поле (иначе няма смисъл да е textarea!
Да не решиш, че се заяждам с теб :)
БАба...
Ама баба не е жена, вие не знаете ли?
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 менюта.
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 на
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 :)
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 :)