salve a tutti! il titolo parla chiaro: come posso fare in modo che un campo input contenga solo caratteri alfabetici?
grazie.
Printable View
salve a tutti! il titolo parla chiaro: come posso fare in modo che un campo input contenga solo caratteri alfabetici?
grazie.
fai una regex di questo tipo: /^[a-zA-Z0-9]+$/
poi controlli il campo input per es. con questa funzione js:
Codice HTML:
function test_input()
{
var stringa = document.modulo_form.stringa.value;
var regexp = /^[a-zA-Z0-9]+$/;
if (regexp.test(stringa) == false)
{
alert("Puoi usare solo caratteri alfanumerici");
}
else
{
alert("Ok, la stringa è corretta!");
}
}
<form name="modulo_form">
<input type="text" name="stringa">
<input type="button" value="Test Input" onclick="test_input();">
</form>
Allora io ho questo codice per un form di registrazione (fatto malissimo ma sono alle prime armi)
come puoi notare ho aggiunto alcune limitazioni al form per evitare agli utenti di iscriversi piu volte e vorrei fare in modo che nei campi nome e cognome l'utente possa inserire solo lettere, se aggiunge anche numeri che appaia con l'inner html sotto al campo con scritto "caratteri numerici non ammessi". come posso fare?Codice HTML:<html>
<head>
<script language="javascript">
function validate()
{
var str=true;
document.getElementById("msg1").innerHTML="";
document.getElementById("msg4").innerHTML="";
document.getElementById("msg2").innerHTML="";
document.getElementById("msg3").innerHTML="";
document.getElementById("msg5").innerHTML="";
document.getElementById("msg6").innerHTML="";
document.getElementById("msg7").innerHTML="";
document.getElementById("msg8").innerHTML="";
if(document.modulo.user.value=='')
{
document.getElementById("msg1").innerHTML=" <img src=\"http://images.findicons.com/files/icons/1687/free_web_design/16/sign_warning.png\" align=\"absmiddle\"> Inserire un username.";
str=false;
}
if(document.modulo.pass.value=='')
{
document.getElementById("msg2").innerHTML=" <img src=\"http://images.findicons.com/files/icons/1687/free_web_design/16/sign_warning.png\" align=\"absmiddle\"> Inserire una password.";
str=false;
}
else if(document.modulo.pass.value.length < 3)
{
document.getElementById("msg5").innerHTML=" <img src=\"http://images.findicons.com/files/icons/1687/free_web_design/16/sign_warning.png\" align=\"absmiddle\"> Inserire almeno <b>3</b> caratteri.";
str=false;
}
else if(document.modulo.pass.value.length > 15)
{
document.getElementById("msg6").innerHTML=" <img src=\"http://images.findicons.com/files/icons/1687/free_web_design/16/sign_warning.png\" align=\"absmiddle\"> Inserire al massimo <b>15</b> caratteri.";
str=false;
}
if(document.modulo.pass.value!=document.modulo.re_pass.value)
{
document.getElementById("msg3").innerHTML=" <img src=\"http://images.findicons.com/files/icons/1687/free_web_design/16/sign_warning.png\" align=\"absmiddle\"> Le password inserite non coincidono.";
str=false;
}
var validate_char= /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
if(!document.modulo.email.value.match(validate_char))
{
document.getElementById("msg4").innerHTML=" <img src=\"http://images.findicons.com/files/icons/1687/free_web_design/16/sign_warning.png\" align=\"absmiddle\"> Inserire un indirizzo email valido.";
str=false;
}
if(document.modulo.firstname.value=='')
{
document.getElementById("msg7").innerHTML=" <img src=\"http://images.findicons.com/files/icons/1687/free_web_design/16/sign_warning.png\" align=\"absmiddle\"> Inserire il nome.";
str=false;
}
if(document.modulo.lastname.value=='')
{
document.getElementById("msg8").innerHTML=" <img src=\"http://images.findicons.com/files/icons/1687/free_web_design/16/sign_warning.png\" align=\"absmiddle\"> Inserire il cognome.";
str=false;
}
return str;
}
</script>
</head>
<body>
<p>
<!-- Procediamo costruendo il nostro form che passerà le informazioni inserite alla pagina data_insert.php.
Da notare:
1. action="data_insert.php?action=add&type=user" - che ci permette di passare le 2 variabili action e type,
con i loro rispettivi valori, add e user
2. il richiamo delle funzioni javascript al premere del pulsante "Conferma": onSubmit="return (ver() && ControllaMail());" -->
<form name="modulo" action="data_insert.php?action=add&type=user" method="post" onSubmit="return validate()">
<table border="0">
<table border="0">
<tr>
<td width="160"><div align="left"><b>Nome :</b> <br></div></td>
<td width="100"><input id="firstname" size="20" type="text" name="firstname" class="username"></td>
</tr>
<tr>
<td width="160"><br><br></td>
<td width="100"><div><span id="statusx"></div><div id="msg7" style="color:#FF0000"></div></td>
</tr>
<tr>
<td width="160"><div align="left"><b>Cognome :</b> <br></div></td>
<td width="100"><input id="lastname" size="20" type="text" name="lastname" class="username"></td>
</tr>
<tr>
<td width="160"><br><br></td>
<td width="100"><div><span id="statusx"></div><div id="msg8" style="color:#FF0000"></div></td>
</tr>
<tr>
<td>
<tr>
<td width="160"><div align="left"><b>Username :</b> </div></td>
<td width="100"><input id="user" size="20" type="text" name="user" class="username"</td>
</tr>
<tr>
<td width="160"><font face="arial" size="2">Il nome utente deve avere <br> minimo <b>3</b> e massimo <b>15</b> <br> caratteri alfanumerici.</font></td>
<td width="100"><table border="0"><tr><td><div><span id="status"></div><div id="msg1" style="color:#FF0000"></td></tr><tr><td><br></td></tr></table></td>
</tr>
<tr>
<td width="160"><div align="left"><b>Email :</b> <br></div></td>
<td width="100"><input id="email" size="20" type="text" name="email" class="email"></td>
</tr>
<tr>
<td width="160"><br></td>
<td width="100"><div><span id="statusx"></div><div id="msg4" style="color:#FF0000"></div></td>
</tr>
<tr>
<td width="160"><br></td>
<td width="100"><br></td>
</tr>
<tr>
<td width="160"><div align="left"><b>Password :</b> </div></td>
<td width="100"><input size="20" type="password" name="pass" class="password"></td>
</tr>
<tr>
<td width="160" align="left"><font face="arial" size="2">La password deve avere <br> minimo <b>3</b> e massimo <b>15</b> <br> caratteri, può contenere <br> numeri e lettere sia <br> maiuscole che minuscole.</font></td>
<td width="100"><table border="0"><tr><td><div id="msg2" style="color:#FF0000" class="error"></div><div id="msg5" style="color:#FF0000"></div><div id="msg6" style="color:#FF0000" class="error"></div></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td><br><br></td></tr></table>
</tr>
<tr>
<td width="160"><div align="left"><b>Conferma Password :</b> </div></td>
<td width="100"><input size="20" type="password" name="re_pass" class="conferma"></td>
</tr>
<tr>
<td width="160"><br></td>
<td width="100"><div id="msg3" style="color:#FF0000"></td>
</tr>
<tr>
<td width="160"><br></td>
<td width="100"><br></td>
</tr>
<tr>
<td width="160"><br></td>
<td width="100"><br></td>
</tr>
<tr>
<td width="160"><br></td>
<td width="100"><center><button type="submit" class="registrazione">Registrati</button></center></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</p>
</body>
</html>
se vuoi solo lettere per i due campi nome e cognome, escludi dalla regex i numeri, ed effettui il controllo come hai fatto per l'email....
ho provato a fare come hai detto ma non funziona correttamente. anche se inserisco caratteri alfabetici soltanto non funziona! forse un mio errore di sistemazione.. come devo sistemare il codice?
grazie.
non è che sia sbagliato il controllo, e che devi dare al form un nome diverso da 'modulo', prova per es. a dare al name="modulo_form" e vedrai che funziona....
un test qui:
http://eurosalute.altervista.org/test-prove/
se metto al name del form ='modulo' non funziona....
ma come fai a dire che funziona? io ho provato sulla pagina test che mi hai creato ma se inserisco caratteri numerici non da errori! è come se non ci fosse alcun controllo!! :???::???:
no scusa, non ho inserito quel controllo sul nome esul cognome, ho semplicemente verificato i campi nulli...
ho inserito quel controllo ora e funziona, verifica tu stesso....
ho dovuto mettere al name ="modulo_form", perchè già utilizzo name="modulo" per un altro form.....
an adesso si funziona alla grande :D puoi postarmi il codice perfavore che lo inserisco nella mia pagina?
grazie mille
Codice HTML:
var validate_nome_cognome = /^[a-zA-Z]+$/;
if (validate_nome_cognome.test(document.modulo_form.firstname.value) == false)
//if(document.modulo_form.firstname.value=='')
{
document.getElementById("msg7").innerHTML=" <img src=\"http://images.findicons.com/files/icons/1687/free_web_design/16/sign_warning.png\" align=\"absmiddle\"> Inserire il nome, solo lettere per favore.";
str=false;
}
if (validate_nome_cognome.test(document.modulo_form.lastname.value) == false)
//if(document.modulo_form.lastname.value=='')
{
document.getElementById("msg8").innerHTML=" <img src=\"http://images.findicons.com/files/icons/1687/free_web_design/16/sign_warning.png\" align=\"absmiddle\"> Inserire il cognome, solo lettere per favore.";
str=false;
}
grazie mille!
figurati....
ciao