ciao,
ho in un sito una form per il caricamento dei contenuti con due submit: invio modulo ed anteprima
Quando si fa il submit della form, nel caso di invio se si è in un campo oppure di click sul pulsante di invio modulo, mi dovrebbe applicare il controllo tramite js e, se ha successo, inviare il modulo richiamandone una determinata action
Se invece si fa click su anteprima, dovrebbe prima fare il controllo js e, se ha successo, inviare il modulo ad una popup
Il problema è che tutto funzionerebbe, tranne per il fatto che, se non compilo nessun campo e quindi il js ritorna false, cliccando su anteprima restituisce l'alert del js ma apre comunuqe la popup
come si può risolvere?
ecco i vari codici:
la form:
codice:
<form name="contenuti" method="post" onSubmit="return CheckContenuti(this);">
il submit "invia modulo" della form:
codice:
<input type="submit" value="Invia modulo" onClick="contenuti.action='bo_contenuti.asp';contenuti.target='_self';" class="bottone150" <%=js_submit%>>
il submit "Anteprima" della form:
codice:
<input type="submit" value="Anteprima" onClick="contenuti.action='bo_popanteprima.asp';contenuti.target='popup2';OpenPopup('about:blank','popup2','346','445');" class="bottone100" <%=js_submit%>>
la funzione js "CheckContenuti":
codice:
function CheckContenuti(f)
{
var errMsg = '';
var errMsgLayout = '';
var titolo=f.cont_titolo;
var layout = f.cont_layout;
var testo1=f.cont_testo1;
var testo2=f.cont_testo2;
var testo3=f.cont_testo3;
if ( (titolo.value=="") || ((titolo.value.replace(/\s*/gi,'') == '') || (titolo.value.replace(/\x13\x10*/gi,'') == '')) )
errMsg += "- Titolo è obbligatorio e non può essere vuoto.\n";
switch (layout.value)
{
case '1':
if ( (testo1.value == "") || ((testo1.value.replace(/\s*/gi,'') == '') || (testo1.value.replace(/\x13\x10*/gi,'') == '')) )
errMsgLayout += "Testo #1 è obbligatorio e non può essere vuoto.\n";
if ( (testo2.value == "") || ((testo2.value.replace(/\s*/gi,'') == '') || (testo2.value.replace(/\x13\x10*/gi,'') == '')) )
errMsgLayout += "Testo #2 è obbligatorio e non può essere vuoto.\n";
if ( (testo3.value == "") || ((testo3.value.replace(/\s*/gi,'') == '') || (testo3.value.replace(/\x13\x10*/gi,'') == '')) )
errMsgLayout += "Testo #3 è obbligatorio e non può essere vuoto.\n";
break;
case '2':
case '3':
if ( (testo1.value == "") || ((testo1.value.replace(/\s*/gi,'') == '') || (testo1.value.replace(/\x13\x10*/gi,'') == '')) )
errMsgLayout += "Testo #1 è obbligatorio e non può essere vuoto.\n";
break;
case '4':
case '5':
if ( (testo1.value == "") || ((testo1.value.replace(/\s*/gi,'') == '') || (testo1.value.replace(/\x13\x10*/gi,'') == '')) )
errMsgLayout += "Testo #1 è obbligatorio e non può essere vuoto.\n";
if ( (testo2.value == "") || ((testo2.value.replace(/\s*/gi,'') == '') || (testo2.value.replace(/\x13\x10*/gi,'') == '')) )
errMsgLayout += "Testo #2 è obbligatorio e non può essere vuoto.\n";
break;
}
if (errMsgLayout != '')
errMsg += "- Layout #"+layout.value+":\n"+errMsgLayout;
if (errMsg != '')
{
errMsg = "Si sono verificati i seguenti errori:\n\n" + errMsg;
alert(errMsg);
return false;
}
//else
// return true;
}
la funzione js "Popup":
codice:
function Popup(theURL,winName,features) {
window.open(theURL,winName,features);
}
grazie mille fin d'ora a chi mi aiuteà a far funzionare il tutto come dovrebbe