Originariamente inviato da djcaipiroska
wow...mazza...ehehehhe... ascolta solo una cosina. quindi io dove hai messo pagina.php posso anche mettere grazie.htm cioè la pagina di conferma di avvenuta compilazione del form giusto?
No, allora non ho capito. Ovviamente le info devo essere processate lato server, hai bisogno di una pagina php.
Dopo averle processate vuoi rimandare alla pagina grazie.htm? Allora devi fare un redirect lato server da pagina.php.
Comunque puoi scrivere grazie all'utente anche dalla pagina php.
Originariamente inviato da djcaipiroska
Serve che modifico qualcosa nel javascript ho posso prendere il tutto così com'e'?
Ma i commenti cosa li ho scritti a fare?
Se vuoi utilizzare il messaggio di errore nel tag "errore" devi:
- inserire il tag con id="errore" (lo span nell'esempio).
- assegnare un id alla form e scriverlo nello script (var oForm = document.getElementById("f1")
.
- lasciare impostata a true la variabile flTagErrore.
Se non fai una di queste cose il controllo funziona, ma il messaggio verrà posto all'utente solo tramite alert.
Originariamente inviato da djcaipiroska
di dove sei?
Secondo te Provenienza: Monza cos'è? Un'informazione criptata?
Tu?
Originariamente inviato da djcaipiroska
pps: ho dimenticato di dirti che c'e' anche un campo SFOGLIA per allegare un immagine. E' qualcosa di complicato o c'e' qualche script anche per quello?
Non ci avevo pensato, ci vuole una piccola modifica, niente di che:
codice:
<html>
<head>
<style type="text/css">
#errore {
color: red;
font-weight: bold;
border: 2px solid red;
visibility: hidden;
padding: 2px 10px;
}
</style>
<script type="text/javascript">
//flag che indica la presenza del tag con id=errore
// atto a contenere i messaggi di errore della routine di controllo
//Se impostato a false o se il tag non è presente, i messaggi vengono visualizzati tramite alert.
var flTagErrore = true;
function resetMessaggio () {
document.getElementById("errore").style.visibility = "hidden";
}
window.onload = function init () {
//Funzione di inizializzazione degli elementi della form (solo se l'errore è da visualizzare nell'apposito tag)
//Viene disattivato il messaggio di errore
// sull'onblur di tutti gli elementi
// sugli eventi che determinano la variazione dei specifici campi
//Si poteva anche impostare l'onkeypress e l'onclick di tutti
// gli elementi, senza nessuno switch, ma me ne sono reso conto solo alla fine.
//*******************************************
//Form da controllare.
//Se nel codice non è presente l'id (o non è uguale a quello scritto qui sotto)
// nella form il controllo viene fatto comunque, ma non è possibile utilizzare il tag "errore" per i messaggi
//*******************************************
var oForm = document.getElementById("f1");
//Si verifica la possibilità di utilizzare il tag di errore
//Se abilitato, se presente il tag con id="errore", se presente la form si prosegue, altrimenti si usa l'alert
if (!flTagErrore && !document.getElementById("errore") && !oForm) {
flTagErrore = false;
return false;
}
var cllcElem = oForm.elements; //collection degli elementi della form
for (var i=0; i<cllcElem.length; i++) {
cllcElem[i].onblur = resetMessaggio;
switch (cllcElem[i].tagName.toLowerCase()) {
case "select":
cllcElem[i].onkeypress = resetMessaggio;
break;
case "input":
cllcElem[i].onblur = resetMessaggio;
switch (cllcElem[i].getAttribute("type").toLowerCase()) {
case "text":
case "password":
cllcElem[i].onkeypress = resetMessaggio;
break;
case "file":
case "radio":
cllcElem[i].onclick = resetMessaggio;
break;
}
break;
case "textarea":
cllcElem[i].onkeypress = resetMessaggio;
break;
}
}
}
function errore(oElem, pMessaggio) {
//Viene dato il focus all'elemento passato e viene visualizzato il messaggio
oElem.focus();
if (flTagErrore) {
document.getElementById("errore").innerHTML = pMessaggio;
document.getElementById("errore").style.visibility = "visible";
}
else
alert(pMessaggio);
return false;
}
function controllaTesti(pForm) {
var cllcElem = pForm.elements; //collection degli elementi della form
var i, j;
var flChecked;
var radioOk = new Array;
for (i=0; i<cllcElem.length; i++) {
switch (cllcElem[i].tagName.toLowerCase()) {
case "select":
if (cllcElem[i].value == "") {
if (cllcElem[i].getAttribute("multiple") == "multiple" || cllcElem[i].getAttribute("multiple") == "true")
return errore(cllcElem[i], "E' obbligatorio selezionare almeno un valore!");
else
return errore(cllcElem[i], "E' obbligatorio selezionare un valore!");
}
break;
case "input":
switch (cllcElem[i].getAttribute("type").toLowerCase()) {
case "text":
case "password":
case "file":
if (cllcElem[i].value.replace(/\s+$|^\s+/g,"") == "") //Se il valore trimmato è vuoto si blocca il submit
return errore(cllcElem[i], "Campo " + cllcElem[i].getAttribute("name") + " obbligatorio!");
break;
case "radio":
if (!isControllato(radioOk, cllcElem[i].getAttribute("name"))) {
//Se il radio non è già stato controllato si procede con la verifica
flChecked = false; //default
//Si controllano tutti i successivi elementi della form
//Se non è stato selezionato nemmeno un elemento del radio si avverte l'utente
for (j=i; j<cllcElem.length; j++) {
if ((cllcElem[j].tagName.toLowerCase() == "input") && (cllcElem[j].getAttribute("type").toLowerCase() == "radio")) {
if (cllcElem[j].getAttribute("name") == cllcElem[i].getAttribute("name")) {
if (cllcElem[j].checked) {
flChecked = true;
break;
}
}
}
}
if (!flChecked)
return errore(cllcElem[i], "Effettuare una selezione!");
else
radioOk.push(cllcElem[i].getAttribute("name")); //Si scrive il nome in un array per non ricontrollarlo sui successivi elementi
}
break;
case "checkbox":
break;
}
break;
case "textarea":
if (cllcElem[i].value.replace(/\s+$|^\s+/g,"") == "") //Se il valore trimmato è vuoto si blocca il submit
return errore(cllcElem[i], "Campo " + cllcElem[i].getAttribute("name") + " obbligatorio!");
break;
}
}
//Viene ritornato true solo se tutti i campi sono stati valorizzati
return true;
}
function isControllato (oArray, pNome) {
//Funzione che controlla se il nome è già presente nell'array dei radio controllati
for (i=0; i<oArray.length; i++) {
if (oArray[i] == pNome)
return true;
}
return false;
}
</script>
</head>
<body>
<form id="f1" action="pagina.php" onsubmit="return controllaTesti(this);">
<input name="i1" type="text" />
<input name="i2" type="text" />
<input name="i3" type="text" />
<input name="i4" type="checkbox" />
<input name="i5" type="text" />
<input name="i6" type="radio" value="1" />
<input name="i6" type="radio" value="2" />
<input name="i7" type="text" />
<input name="i6" type="radio" value="3" />
<input name="i8" type="text" />
<input name="i9" type="password" />
<input name="i10" type="hidden" />
<input name="i11" type="button" />
<input name="i12" type="file"/>
<textarea name="t1"></textarea>
<textarea name="t2"></textarea>
<select name="s1">
<option></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select name="s2" multiple="multiple">
<option></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="submit" />
</form>
<span id="errore"></span>
</body>
</html>