PDA

View Full Version : [Javascript] Check argomento form prima di submit


cenarius_88
28-11-2013, 19:33
Salve, ci sto sbattendo la testa da un po', ma non riesco a venirne a capo

In pratica ho un form di ricerca simile

<form name="modulo" action="<?php echo $_SERVER['PHP_SELF'];?>" method="get" target="_self">

<input name="s" type="text" id="search" title="... cerca" maxlength="100" value="<?php echo $stringa;?>"/>
<select id="dove" name="dove" title="Seleziona dove" >
<option value="tutto">Tutto</option>
<option ...................</option>
<option ...................</option>
<option ...................</option>
<option ...................</option>
</select>
<select id="ordine" name="ordine" title="Seleziona ordinamento" >
<option value="alfabetico" selected="selected">Alfabetico</option>
<option ...................</option>
<option ...................</option>
</select>


<input type="button" id="Cerca" onClick="check()" value="Cerca" title="Cerca" />
</form>



la form ha come action la pagina stessa, come metodo get
Al pulsante ho associato una funzione javascript che fa il check sull'input text
(se ha lunghezza <3 o vuota non invia, altrimenti invia), e questo va benissimo

Il problema è che se premo invio sull'input text, questo salta il check e manda tutto... non so come fare in modo che premendo invio deve fare il check

Ho letto un pezzo su internet e ho trovato qualcosa del genere


onkeydown="if(event.keyCode==13)check()"


da aggiungere all'input text, però così facendo, si fa il check, ma manda comunque la submit....

EDIT: giustamente uno fa mille prove e non capisce un tubo, otto secondi dopo aver chiesto gli viene l'idea

onkeydown="if(event.keyCode==13){check();return false;}

Risolto Lo lascio per i posteri v.v

Don[ITA]
02-12-2013, 11:29
Basta che associ l'evento onsubmit del tuo form con l'azione che effettua il controllo dei dati:

<form name="modulo" action="<?php echo $_SERVER['PHP_SELF'];?>" method="get" target="_self" onsublit="check()">

Così facendo intercetti sia il click del bottone che la pressione dell'INVIO

IAmZak
06-12-2013, 16:59
basta che fai
<form onSubmit="return controllo_form();">
</form>

e in js fai

function(){
if(...){
return false;
}
}