Controllare che il form sia composto da soli numeri e non sia vuoto?

  • Creatore Discussione Creatore Discussione ppigna
  • Data di inizio Data di inizio

ppigna

Utente Attivo
23 Dic 2013
63
0
0
Buongiorno a tutti,
potete dirmi come creare il comando (e dove posizionarlo nel mio codice), in Javascript per controllare che un input (type="text") non sia vuoto e che sia composto da soli numeri (e in caso contrario inviare un alert con scritto "Compilare i campi con soli numeri")? Ho cercato su internet, ma non riesco a fare funzionarlo, forse perché la mia è una situazione particolare: ho un form che contiene tre input diversi, posizionati in diverse parte della pagina. Ecco il codice:
HTML:
<body>
		<div id="ac_background" class="ac_background">
			<img class="ac_bgimage" src="http://forum.mrwebmaster.it/images/galassia1.jpg" alt="Background"/>
			<div class="ac_overlay"></div>
			<div class="ac_loading"></div>
		</div>
		<div id="ac_content" class="ac_content">
			<h1>Oracolo del Web<span><br />Completa i campi e poi premi invio</span></h1>
			<form name="form" action="frase.php" method="post" onblur="return checkban()">
			<div class="ac_menu"> 
				<ul>
					<li>
						<a href="http://forum.mrwebmaster.it/images/galassia2.jpg">Giorno</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Giorno</h2>
							<ul>
								<li>Che giorno è oggi? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<input type="text" name="giorno" size="15"><!-- <input type="button" name="Invia" value="  Invia  " size="10"> -->
							<?php //$giorno = htmlspecialchars($_POST['giorno']); ?>
						</div>
					</li>
					<li>
						<a href="http://forum.mrwebmaster.it/images/galassia3.jpg">Mese</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Mese</h2>
							<ul>
								<li>In che mese siamo oggi? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<input type="text" name="mese" size="15"><!-- <input type="button" name="Invia" value="  Invia  " size="10"> -->
							<?php //$mese = htmlspecialchars($_POST['mese']); ?>
						</div>
					</li>
					<li>
						<a href="http://forum.mrwebmaster.it/images/galassia4.jpg">Nome</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Nome</h2>
							<ul>
								<li>Da quante lettere è formato il tuo (primo) nome? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<input type="text" name="nome" size="15"><!-- <input type="button" name="Invia" value="  Invia  " size="10"> -->
							<?php //$nome = htmlspecialchars($_POST['nome']); ?>
						</div>
					</li>
					<li>
						<a href="http://forum.mrwebmaster.it/images/galassia5.jpg">Invio</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Invio</h2>
							<ul>
								<li><p>Premi Invia per visualizzare il responso dell'oracolo.</p></li>
								<li><br /></li>
							</ul>
							<input type="submit" name="Invia"  value="  Invia  " size="10" onclick="location.href='frase.php'">
						</div>
					</li>
				</ul>
			</div>
			</form>
		</div>
		<div class="ac_footer">
			<span>Copyright (c) 2013 oracolodelweb.altervista.org | All rights reserved | Template by: <a href="http://www.tympanus.net">tympanus.net</a></span>
			<span style="float:right; padding-right:5px">Created by Giulio Pignatti and Luca Nisidi</span>
		</div>

Grazie mille :)
 
ciao
criric ha ragione, però ricorda che i controlli js sono facilmente bypassabili

Bypassabili nel senso che si possono aggirare? In caso non sarebbe un gran problema: all'utenza del mio sito (prevalentemente ragazzi in cerca di svago) non interessa molto di fregarmi, lo script servirebbe solo per non indurli in errore.
(Con "ha ragione" intendi che quello è il js più adatto alla situazione?)
Grazie e buona serata :)
 
ciao
si, guardando il 3d indicato da criric trovi quello che ti serve.
si si possono aggirare e quindi inserire valori che possono provocare danni, è sempre meglio una verifica lato server
 
se me la adattassi al mio codice
devi solo copiare lo script nella pagina e aggiungere agli input che vuoi controllare
HTML:
onkeyup="char_consentiti(this)"
 
devi solo copiare lo script nella pagina e aggiungere agli input che vuoi controllare
HTML:
onkeyup="char_consentiti(this)"

Ok, grazie mille veramente :)
Ma se volessi che comparisse ANCHE un messaggio alert quando uno scrive una lettera al posto di un numero?
 
Ma se volessi che comparisse ANCHE un messaggio alert
puoi aggiungere un alert in questa parte dello script
Codice:
if (!valore.charAt(i).match(re)) {
    // avviso
    alert("Sono consentiti solo caratteri numerici");
    // aggiorno il valore del campo
    campo.value = valore.substring(0, i);
    // esco
    return;
}
 
puoi aggiungere un alert in questa parte dello script
Codice:
if (!valore.charAt(i).match(re)) {
    // avviso
    alert("Sono consentiti solo caratteri numerici");
    // aggiorno il valore del campo
    campo.value = valore.substring(0, i);
    // esco
    return;
}

Perfetto, grazie mille: mi sei stato molto d'aiuto :) buon pomeriggio
 
Danni di che genere?
prova a dare una letta veloce a questi esempi
se l'argomento ti interessa troverai in rete un sacco di articoli al riguardo
Calcola che se hai un sito online non sarà frequentato solo da persone che conosci e che non hanno nessun interesse a "fregarti"
purtroppo il web è pieno di personaggi che per noia o su commissione passano il tempo a tentare di rovinare il lavoro degli altri
 

Discussioni simili