[Javascript] verifica input

  • Creatore Discussione Creatore Discussione WebDr
  • Data di inizio Data di inizio

WebDr

Nuovo Utente
20 Mar 2017
17
4
3
69
Padova
Ho creato una funzione per verificare che gli input obbligatori siano effettivamente riempiti, ma non succede nulla o meglio il tutto passa direttamente a registrazione.asp. Non mi sembra proprio che il codice presenti degli errori, il debug non ne cita, allora ho pensato che sia un problema di chiamata, ma cos'ha il codice seguente che non va?

<FORM ID="MyForm" name="MyForm" METHOD=POST onsubmit="return verifica(this)" ACTION="registrazione.asp"> ....

E la function inserita nell' <head>

function verifica(form){
var cognome = form.cognome.value;
var nome = form.nome.value;
var indirizzo=form.indirizzo.value;
var nvia=indirizzo[indirizzo.length-1];

if ((cognome == "") || (cognome == "undefined")) {
alert("Il campo Cognome è obbligatorio.");
form.cognome.focus();
return false;
}

else if ((nome == "") || (nome == "undefined")) {
alert("Il campo Nome è obbligatorio.");
form.nome.focus();
return false;
} ....ecc.

Dove sbaglio?
 
A me funziona
HTML:
<FORM ID="MyForm" name="MyForm" METHOD=POST onsubmit="return verifica(this)"  ACTION="registrazione.asp">
    <input type="text" name="cognome"/>
    <input type="submit" value="submit"/>
</FORM>
<script>
    function verifica(form) {

        var cognome = form.cognome.value;

        if ((cognome == "") || (cognome == "undefined")) {
            alert("Il campo Cognome è obbligatorio.");
            form.cognome.focus();
            return false;
        }
    }
</script>
forse è la parte di codice che non hai postato ch enon va.
Usa i tag per racchiudere il codice
 
A me funziona
forse è la parte di codice che non hai postato ch enon va.
Usa i tag per racchiudere il codice

Mah... o oggi sono particolarmente distratto...non cavo un ragno dal buco. Nemmeno Notepad++ mi aiuta.
Lo posto tutto, anche con i CSS :)
Gli puoi dare un'occhiata?
HTML:
<!--#include file="ProIniFile.asp"-->
<HTML>
<HEAD>
<TITLE>Registra operatore</TITLE>

<script type="text/javascript">

function verifica(form){

var cognome = form.cognome.value;
var nome = form.nome.value;
var indirizzo=form.indirizzo.value;
var nvia=indirizzo[indirizzo.length-1];
var citta=form.citta.value;
var provincia=form.provincia.value;
var associazione=form.associazione.value;
var email=form.email.value;
var login=form.lalogin.value;
var password=form.lapassword.value;
var colr;

if ((cognome == "") || (cognome == "undefined")) {
alert("Il campo Cognome è obbligatorio.");
form.cognome.focus();
return false;
}

else if ((nome == "") || (nome == "undefined")) {
alert("Il campo Nome è obbligatorio.");
form.nome.focus();
return false;
}

else if ((indirizzo == "") || (indirizzo == "undefined")) {
alert("Il campo Indirizzo è obbligatorio.");
form.indirizzo.focus();
return false;
}

else if (indirizzo.indexOf('n°')>-1){
alert("Inserire solo il numero senza 'n°' per indicare il civico della via");
form.indirizzo.focus();
return false;
}

else if (isNaN(nvia)) {
alert("Manca il numero civico.");
form.indirizzo.focus();
return false;
}

else if ((citta == "") || (citta == "undefined")) {
alert("Il campo Citta' è obbligatorio.");
form.citta.focus();
return false;
}
else if ((provincia == "") || (provincia == "undefined")) {
alert("Il campo Provincia è obbligatorio.");
form.provincia.focus();
return false;
}

else if ((associazione == "") || (associazione == "undefined")) {
alert("Il campo Associazione è obbligatorio.");
form.associazione.focus();
return false;
}

else if ((email == "") || (email == "undefined")) {
alert("Il campo Email è obbligatorio.");
form.email.focus();
return false;
}
else if ((login == "") || (login == "undefined")) {
alert("Il campo Login è obbligatorio.");
form.lalogin.focus();
return false;
}
else if ((password == "") || (password == "undefined")) {
alert("Il campo Password è obbligatorio.");
form.lapassword.focus();
return false;
}

}
</script>


<style type="text/css">
body {
background: #e0e0e0; /* For browsers that do not support gradients */
background: -webkit-linear-gradient(#e0e0e0, #FFFFFF); /* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(#e0e0e0, #FFFFFF); /* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(#e0e0e0, #FFFFFF); /* For Firefox 3.6 to 15 */
background: linear-gradient(#e0e0e0, #FFFFFF); /* Standard syntax */
}

#aream{
position: absolute;
top: 50%;
left: 50%;
margin-top: -350px;
margin-left: -300px;
background-color:#FFFFFF;
border-style:solid;
border-color:#B70408;
box-shadow: 10px 10px 5px #888888;
border-width: thin;
}
input.largo {
width: 105px;
height: 28px;
}
</style>
</HEAD>
<body text="#000000" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<%
dim strCode
strCode="lapassword"
dim intVolta
intVolta="0"
dim pos
dim cognome,nome,indirizzo,citta,provincia,associazione,email,loggin,password,admin
dim FN
FN=Server.MapPath("food.ini")

cognome=request.form("cognome")
nome=request.form("nome")
indirizzo=request.form("indirizzo")
citta=request.form("citta")
provincia=request.form("provincia")
associazione=request.form("associazione")
email=request.form("email")
loggin=request.form("laloggin")
password=request.form("lapassword")
'admin=request.form("admin")

IF len(cognome)>0 Then
codn=GetINIString(CodMaker, "numera", Default, FN) ' preleva il progressivo per la creazione del codice
codn=codn+1 ' lo aumenta di uno
codice="FS"& codn &"F" 'definisce la composizione del codice
Call Registra()
END IF

SUB Registra()
Set Conn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)}; "
strConn=strConn & " DBQ=" & Server.MapPath("mdb-database/operatori.mdb")
strConn=strConn & ";pwd=" & strCode
Conn.Open strConn
sql = "SELECT * FROM operatori WHERE LOGGIN='" & loggin & "'"
Set rs = Server.CreateObject("ADODB.Recordset")
'--qui il controllo della pre-esistenza loggin e password
rs.Open sql, conn ,3,3
if rs.RecordCount > 0 then
response.write("<script language=""javascript"">alert('La login '" + loggin + "' risulta già presente.');</script>")
cognome=""
rs.Close
Conn.Close
exit sub
end if
rs.Close
Conn.Close
Conn.Open strConn
sql = "SELECT * FROM operatori WHERE LOGGIN='" & password & "'"
rs.Open sql, conn ,3,3
if rs.RecordCount > 0 then
response.write("<script language=""javascript"">alert('La password '" + password + "' risulta già presente.');</script>")
cognome=""
rs.Close
Conn.Close
exit sub
end if
rs.Close
Conn.Close
'---
Conn.Open strConn
'se non esistente aggiungere:
sql = "SELECT * FROM operatori"
rs.Open sql, conn ,3,3
rs.addnew

rs("COGNOME")=cognome
rs("NOME")=nome
rs("INDIRIZZO")=indirizzo
rs("CITTA")=citta
rs("PROVINCIA")=provincia
rs("ASSOCIAZIONE")=associazione
rs("EMAIL")=email
rs("LOGGIN")=loggin
rs("PASSWORD")=password
rs("CODICE")=codice 'il codice non dovrà essere visibile nella pagina di modifica dell'account
'rs("ADMIN")=admin

rs.update
rs.Close

set rs = Nothing
conn.Close
set conn = Nothing

END SUB

%>
<DIV id="aream" STYLE="z-index:0; height:530px; width:600px;">
<div STYLE="position: absolute; top:20px; left:440px;">
<img SRC="immagini/nuovoutente.jpg" height="111" width="113">
</div>
<div STYLE="position: absolute; top:0px; left:235px;">
<br><b><font color="blue"><font size=+3>Firstfood</font></font></b>
</div>
<div STYLE="position: absolute; top:65px; left: 170px;">
<B>Registrazione NUOVO ACCOUNT</B>
</div>

<FORM ID="MyForm" name="MyForm" METHOD=POST onsubmit="return verifica(this)" ACTION="registrazione.asp">
<div STYLE="position: absolute; top:110px; left: 80px;">
Cognome:
<p>Nome:</p>
<p>Indirizzo:</p>
<p>Citta':</p>
<p>Provincia:</p>
<p>Associazione:</p>
<p>Email:</p>
<p>Login:</p>
<p>Password:</p>
</div>
<div STYLE="position: absolute; top:110px; left: 180px; width: 345px;">
<INPUT ID="cognome" TYPE="text" NAME="cognome" size="25" maxlength="25" value=""><font color="red">&nbsp;*</font>
</div>
<div STYLE="position: absolute; top:145px; left: 180px; width: 345px;">
<INPUT ID="nome" TYPE="text" NAME="nome" size="25" maxlength="25" value=""><font color="red">&nbsp;*</font>
</div>
<div STYLE="position: absolute; top: 180px; left: 180px; width: 345px;">
<INPUT ID="indirizzo" TYPE="text" NAME="indirizzo" size="45" maxlength="45" value=""><font color="red">&nbsp;*</font>
</div>
<div STYLE="position: absolute; top: 215px; left: 180px; width: 345px;">
<INPUT ID="citta" TYPE="text" NAME="citta" size="45" maxlength="45" value=""><font color="red">&nbsp;*</font>
</div>
<div STYLE="position: absolute; top:250px; left: 180px;width: 345px;">
<INPUT ID="provincia" TYPE="text" NAME="provincia" size="4" maxlength="2" value=""><font color="red">&nbsp;*</font>
</div>
<div STYLE="position: absolute; top:285px; left: 180px; width: 350px;">
<INPUT ID="associazione" TYPE="text" NAME="associazione" size="50" maxlength="50" value=""><font color="red">&nbsp;*</font>
</div>
<div STYLE="position: absolute; top:320px; left: 180px; width: 345px;">
<INPUT ID="email" TYPE="text" NAME="email" size="25" maxlength="35" value=""><font color="red">&nbsp;*</font>
</div>
<div STYLE="position: absolute; top:355px; left: 180px; width: 345px;">
<INPUT ID="login" TYPE="text" NAME="laloggin" size="25" maxlength="20" value=""><font color="red">&nbsp;*</font>
</div>
<div STYLE="position: absolute; top:390px; left: 180px; width: 345px;">
<INPUT ID="password" TYPE="text" NAME="lapassword" size="25" maxlength="20" value=""><font color="red">&nbsp;*</font>
</div>

<div STYLE="position: absolute; top:430px; left: 200px; width: 300px">
<font size=-1><font color="red">(*)Tutti i campi sono obbligatori</font></font>
</div>
<div STYLE="position: absolute; top:470px; left: 100px;">
<INPUT class="largo" TYPE="submit" value="Salva">
</div>
<div STYLE="position: absolute; top: 470px; left: 400px;">
<INPUT class="largo" TYPE=BUTTON VALUE="Menu" onClick="location.href='menu.asp'">
</div>
</FORM>
<% if len(cognome)>0 Then%>
<div STYLE="position: absolute; top:140px; left: 420px;">
<img SRC="immagini/ok.png" NOSAVE height=100 width=65>
</div>
<%
cognome=""
nome=""
indirizzo=""
citta=""
provincia=""
associazione=""
email=""
loggin=""
password=""
end if
%>
</DIV>
</BODY>
</HTML>
 
Ultima modifica di un moderatore:
Codice:
var login = form.lalogin.value;
lalogin non esiste, hai scritto con due g
Codice:
var login = form.laloggin.value;
 
Codice:
var login = form.lalogin.value;
lalogin non esiste, hai scritto con due g
Codice:
var login = form.laloggin.value;

Ti ringrazio molto e... ti offro un caffè.... purtroppo virtuale :)
Beh, io sono un esperto, ma come hai fatto così rapidamente? c'è un trucco per scovare le cazzarte che si fanno scrivendo :)?
 
ogni riga un alert o un console.log()
vedi subito dove lo script si ferma
 
Ho creato una funzione per verificare che gli input obbligatori siano effettivamente riempiti, ma non succede nulla o meglio il tutto passa direttamente a registrazione.asp. Non mi sembra proprio che il codice presenti degli errori, il debug non ne cita, allora ho pensato che sia un problema di chiamata, ma cos'ha il codice seguente che non va?

<FORM ID="MyForm" name="MyForm" METHOD=POST onsubmit="return verifica(this)" ACTION="registrazione.asp"> ....

E la function inserita nell' <head>

function verifica(form){
var cognome = form.cognome.value;
var nome = form.nome.value;
var indirizzo=form.indirizzo.value;
var nvia=indirizzo[indirizzo.length-1];

if ((cognome == "") || (cognome == "undefined")) {
alert("Il campo Cognome è obbligatorio.");
form.cognome.focus();
return false;
}

else if ((nome == "") || (nome == "undefined")) {
alert("Il campo Nome è obbligatorio.");
form.nome.focus();
return false;
} ....ecc.

Dove sbaglio?
 
Io farei cosi ... ti posto un esempio di form con controllo minimo sui campi
Codice:
<!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 content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Senza nome 1</title>
<script type="text/javascript">
function Verifica(){
// verifica formale scorrendo tutti gli elementi del form e ricercandoli
// tramite il primo carattere del nome quelli ritenuti obbligayori
var x=document.getElementById("nomeform");
for (var i=0;i<x.length;i++)  {
// controlla gli oggetti che iniziano per "K")
   if (x.elements[i].type=="text") {
    if (x.elements[i].name.substr(0,1)=="K") {
     if (x.elements[i].value=="")
      {
      alert("Il campo "+x.elements[i].id + " è vuoto...");
      x.elements[i].focus();
      return false;
      }
   }   
  }
 }
 alert("il form ha i campi correttamente inseriti...");
}
</script>
</head>

<body>
<form name="nomeform" id="nomeform" action="" method="post"  >

<table style="width: 100%">
   <tr>
       <td style="width: 159px">nome</td>
       <td> <input  id="nome" name="Knome" type="text" size="20" /></td>
   </tr>
   <tr>
       <td style="width: 159px">cognome</td>
       <td> <input  id="cognome" name="Kcognome" type="text" /></td>
   </tr>
   <tr>
       <td style="width: 159px">indirizzo</td>
       <td> <input  id="indirizzo" name="indirizzo" type="text" /></td>
   </tr>
   <tr>
       <td style="width: 159px">cap</td>
       <td> <input  id="cap" name="cap" type="text" /></td>
   </tr>
   <tr>
       <td style="width: 159px">città</td>
       <td> <input  id="citta" name="citta" type="text" /></td>
   </tr>
   <tr>
       <td style="width: 159px">telefono</td>
       <td> <input  id="telefono" name="telefono" type="text" /></td>
   </tr>
   <tr>
       <td style="width: 159px">sesso</td>
       <td> <input  id="sesso" name="sesso" type="text" /></td>
   </tr>
   <tr>
       <td style="width: 159px">email</td>
       <td> <input  id="email" name="Kemail" type="text" /></td>
   </tr>
   
</table>
</br>
<input type="button" value="Controllo" onclick="Verifica()" />
</form>
</body>

</html>

ciclo sui campi definiti "text" e solo su quelli che hanno il primo carattere nel nome = "K"
controllo se sia vuoto... e evidenzio il nome id non il nome dove c'è K...
ed esce sul primo errore posizionando il cursore...

ciao
 

Discussioni simili