- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- controllo sui form con javascript
-
controllo sui form con javascript
ciao,è la prima volta che utilizzo javascript, quindi ne so molto poco
ho fatto un form select "composizione" con vare opzioni. l ultima opzione è "Altro".
maglie
pantaloni
cappelli
Altropoi ho messo un altro form di testo per specificare "Altro". Volevo rendere quest ultimo form obbligatorio solo se nel select veniva selezionato Altro. ho scritto questo ma non funziona:
if(composizione.selectedIndex=="Altro" && altro.value=="") {
alert("Errore: compilare il campo ALTRO");
altro.focus();
return false;
}credo sia una cosa facile per chi usa javascript. mi aiutate?
-
proprio a volo
if (document.getElementById('composizione').value=='Altro') { alert('Compilare il campo altro') return false; } ```presuppone che la select sia fatta così: [html] <select id="composizione"/> <option>...</option> etc. etc. </select>[/html]
-
ciao ho provato come dici ma lo stesso non effettua alcun controllo si form "altro". la select è questa
<select name="composizione" id="composizione"><option></option><option>Maglie</option><option>Pantaloni</option><option>Cappelli</option><option>Altro</option></select>
e altro è questo
<input name="altro" type="text" id="altro" />
questi sono i controlli
if(composizione.selectedIndex=="") { alert("Errore: compilare il campo COMPOSIZIONE"); composizione.focus(); return false; } if (document.getElementById('composizione').value=='Altro') { alert("Errore: compilare il campo ALTRO"); altro.focus(); return false; }
dove sbaglio?
-
Perchè il codice che avevi messo faceva andare in errore.
Comunque il discorso è questo:<script language="javascript"> function check_select() { if (document.getElementById('composizione').value=='Altro') { alert("Errore: compilare il campo ALTRO"); document.getElementById('altro').focus(); return false; } } </script> ```[html]<select name="composizione" id="composizione"><option></option><option>Maglie</option><option>Pantaloni</option><option>Cappelli</option><option>Altro</option></select><br /> <br /> <input name="altro" type="text" id="altro" /> <input type="button" value="invio" onclick="javascript:check_select()" />[/html]Poi dipende dalla tua pagina... Incolla l'html interessato alla cosa magari.
-
ok incollo il tutto. dopo aver fatto il controllo su composizione, passa direttamente al controllo di "stato" che è un form messo dopo a "altro"
[html]
<?php
$nome = $_GET['nome'];
session_start();
if(!isset($_SESSION['nome']) || $_SESSION['nome'] != $nome){
print("<script>window.location='index.php'</script>");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Caricamento Richiesta</title>
<script language="JavaScript">
function controllo(){
with(document.modulo) {
if(numero.value=="") {
alert("Errore: compilare il campo NUMERO");
numero.focus();
return false;
}
if(cognome.value=="") {
alert("Errore: compilare il campo COGNOME");
cognome.focus();
return false;
}
if(nome.value=="") {
alert("Errore: compilare il campo NOME");
nome.focus();
return false;
}
if(composizione.selectedIndex=="") {
alert("Errore: compilare il campo COMPOSIZIONE");
composizione.focus();
return false;
}
if (document.getElementById('composizione').value=='Altro') {
alert("Errore: compilare il campo ALTRO");
altro.focus();
return false;
}
if(stato.value=="") {
alert("Errore: compilare il campo STATO");
stato.focus();
return false;
}
}
alert("Controllo effettuato con successo. Il modulo sarà inviato.");
return true;
}
</script>
</head>
<body>
<form name="modulo" id="modulo" onSubmit="return controllo();" action="elabora.php<? echo"?nome=$nome"?>" method="post">
<input type="hidden" name="mail" value="[email protected]">
<table bgcolor="#e4e4e4" width="700" align="center">
<tr>
<td colspan="2"><p class="Stile5">Caricamento Richiesta</p>
<p class="Stile3"> * campi obbligatori </p> </td><td colspan="2"><p> </p>
<p> </p>
<p align="right">*numero:
<input type="text" name="numero" id="numero"/>
</p>
</tr>
<tr><td>*Cognome</td><td>*Nome</td></tr>
<tr><td><input type="text" name="cognome" id="cognome" /></td><td><input type="text" name="nome" id="nome" /></td></tr>
<tr><td>Composizione</td></tr>
<tr><td><select name="composizione" id="composizione"><option></option><option>Maglie</option><option>Pantaloni</option><option>Cappelli</option><option>Altro</option></select></td><td></td><td><div align="right">Specificare Altro</div></td><td><input name="altro" type="text" id="altro" /></td></tr>
<tr><td>*Stato</td></tr>
<tr><td><input type="text" name="stato" id="stato"/></td></tr><tr><td height="30"></td></tr>
<tr>
<td> <div align="center">
<input type="reset" value="Cancella" height="8" />
</div></td><td></td><td></td>
<td>
<div align="left">
<input type="submit" value="Inoltra" height="8"/>
</div></td></tr>
<tr><td height="30"></td></tr>
</table>
</form>
</body>
</html>
[/html]
-
niente, ho provato afareanche una nuova pagina con solo il codice che mi hai dato ma lo stesso non va. nessun aiutino?:)
-
Hai ragione...per fare veloce ho dimenticato io una cosa.
Aggiorna la riga
if (document.getElementById('composizione').value=='Altro') { alert("Errore: compilare il campo ALTRO"); altro.focus(); return false; } ```con questa:
if (document.getElementById('composizione').value=='Altro' && document.getElementById('altro').value=='') {
alert("Errore: compilare il campo ALTRO");
altro.focus();
return false;
}
-
mmm... lo stesso va al form dopo saltando il controllo su altro
-
perchè nelle option del campo select non hai assegnato un valore:
<option>maglie</option> va scritto <option value="maglie">maglie</option>
Firefox invece funziona perchè in assenza del campo value preleva il nome in mezzo alle option.
Ad ogni modo...assegna il value e funzionerà.
-
fatto, funziona tutto alla perfezione. grazie mille, senza il tuo aiuto sarei stata a scervellarmi un altra settimana (minimo) ciao e grazie ancora