Window.print() solo se campi obbligatori compilati

  • Creatore Discussione Creatore Discussione Elena
  • Data di inizio Data di inizio

Elena

Nuovo Utente
11 Lug 2006
10
0
0
Ciao!
Ancora io...ultimissima cosa e poi non vi stresso più! 0:)
Avendo questa funziona associata ad un form per il controllo dei campi obbligatori e una funzione onclick=window.print() sul tasto Invia vorrei dirgli di procedere con la stampa della pagina solo se la funzione qui sotto è completata, ossia se tutti i campi obbligatori sono inseriti. Al momento appena schiaccio Invia, se alcuni campi non sono compilati, mi esce la notifica + la finestra per la stampa :confused:

function formCheck(formobj){
// Enter name of mandatory fields
var fieldRequired = Array("nome", "cognome", "email", "anno", "cinema");
// Enter field description to appear in the dialog box
var fieldDescription = Array("nome", "cognome", "email", "anno", "cinema");
// dialog message
var alertMsg = "Compila i seguenti campi:\n";

var l_Msg = alertMsg.length;

for (var i = 0; i < fieldRequired.length; i++){
var obj = formobj.elements[fieldRequired];
if (obj){
switch(obj.type){
case "select-one":
if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
alertMsg += " - " + fieldDescription + "\n";
}
break;
case "select-multiple":
if (obj.selectedIndex == -1){
alertMsg += " - " + fieldDescription + "\n";
}
break;
case "text":
case "textarea":
if (obj.value == "" || obj.value == null){
alertMsg += " - " + fieldDescription + "\n";
}
break;
default:
}
if (obj.type == undefined){
var blnchecked = false;
for (var j = 0; j < obj.length; j++){
if (obj[j].checked){
blnchecked = true;
}
}
if (!blnchecked){
alertMsg += " - " + fieldDescription + "\n";
}
}
}
}

if (alertMsg.length == l_Msg){
return true;
}else{
alert(alertMsg);
return false;
}
}
 
Ciao Elena :)

Se metti in allegato un file htm già pronto di modo da poter fare qualche test ti aiuto volentieri ;)
Non ho proprio voglia di ricostruire il form e tutto il resto, eh eh :p
:byebye:
 
Ecco qui il file. Praticamente mi piacerebbe che al tasto Invia controllasse che i campi sono stati tutti inseriti (che quindi la funzione formcheck sia completata), dopodichè deve controllare che il checkbox stampa sia flaggato e solo a quel punto inviare il comando window.print.

Spero sia possibile :)
 

Allegati

Eccomi qui ;)

Si, ciò che vuoi fare si può, ed è molto facile :)

Vai alla riga del bottone 'Invia', e fai:

<input type="submit" id="bottone" name="bottone" disabled class="style7" onclick="javascript:if(agreecheck2.checked){window.print();}" value="Invia" />

SaLuT!
:byebye:
 
La seconda parte funzia...però non riesco a dirgli che deve far partire la stampa solo se la funzione formcheck è completata ossia se tutti i campi sono inseriti. Al momento mi da ancora lo stesso errore: se non compilo un campo e clicco su invia, mi esce la notifica compila questo campo ma anche la stampa! :crying:
 
Allora fai così ;)

-la riga del bottone 'Invia' deve diventare così (praticamente, togli l'onclick):

<input type="submit" id="bottone" name="bottone" disabled class="style7" value="Invia" />


-dopodichè, posizionati alla fine della function formChek(), ed aggiungi la parte in blu :)

function formCheck(formobj){
...
if (alertMsg.length == l_Msg){
if(formcheck.agreecheck2.checked){window.print();}
return true;
}else{
alert(alertMsg);
return false;
}
}

SaLuT!
:byebye:
 

Discussioni simili