ugrás a tartalomhoz

form submit enter-re

newyorkerboy · 2009. Nov. 13. (P), 17.57
sziasztok! adott egy ilyen form:
  1. <form name="kereso" onSubmit="javascript:kereses();" style="padding-left:5px">  
  2.  <input name="keres" type="text" style="width:115px">  
  3. <a name="submit" href="javascript:kereses();">OK</a>  
  4. </form>  
és egy ilyen javascript:
  1. kulcsszo=new Object();  
  2. oldal=new Object();  
  3. kulcsszo[0]=1  
  4. kulcsszo[1]="exit"  
  5. oldal[1]="exit.html"  
  6. function kereses(){  
  7. var talalat=false;  
  8. var Item=document.forms[0].keres.value.toLowerCase();  
  9. for(var i=1;i<=kulcsszo[0];i++){  
  10. if(Item==kulcsszo[i]){  
  11. talalat=true;  
  12. location.href=oldal[i];}}  
  13. if(!talalat)  
  14. msg=alert("Nincsen találat!");}  
az lenne a gondom, hogy ha enter-t nyomok, és nem az OK-ra kattintok, akkor csak újratölti az oldalt úgy hogy hozzáfűzi a címhez h ?keres=... , de a keres függvény nem hajtódik végre. php beavatkozással már megoldottam, hogy úgy is működjön, de nem lehet valahogy csak kliens oldalon lerendezni?
 
1

Igen

gphilip · 2009. Nov. 13. (P), 20.00
Szia!

Persze!

<form name="kereso" onSubmit="javascript:kereses(); return false;" style="padding-left:5px">
<input name="keres" type="text" style="width:115px">
<a name="submit">OK</a>
</form>

Tehát egy return false; került a form eseménykezelőjébe, ez meggátolja az elküldést. A submit gombon nincs is szükség a kódra, hiszen - mivel submitról van szó - végrehajtja a form submit eseményét (a tied szerint igazából duplán hajtódna végre).

Szebb megoldás, ha mindezt nem a markupba (HTML) írod, hanem valamilyen frameworkot használsz, és külön JS fájlban kötöd az elemekhez az eseménykezelőket.
2

OK

newyorkerboy · 2009. Nov. 13. (P), 20.21
okés, köszi már működik, így kicsit egyszerűbb is :D
3

focus field

newyorkerboy · 2009. Nov. 13. (P), 21.12
most azon küszködöm, hogy legyen egy olyan input mezőm, aminek alap értéke szürkével hogy "Keresés", ha belekattintok eltűnik a szöveg, és feketére vált a betűszín (eddig kész), majd ha üresen kikattintok belőle, akkor váltson vissza az alaphelyzetre. a végét milyen mouse eseménnyel csináljam meg?
4

onblur

gex · 2009. Nov. 13. (P), 21.18
onblur, de ez stfw.