18 messaggi dal 31 luglio 2002
Ciao tutti,
non riesco a controllare le proprietà (toolbar, resize ecc.) della finestra che lancio da uno script di una pagina asp con window.open().
Questo è il codice:
<script language="VBScript">
<!--
sub Submit_onClick()
dim vartextfield
dim vartextfield2
dim vartextfield3
dim vartextfield4
dim vartextfield5
dim vartextfield6
dim vartextfield7
dim vartextfield8
dim vartextfield9
dim vartextfield10
dim vartextfield11
dim vartextfield12
vartextfield = trim(document.form1.nome.value)
vartextfield2 = trim(document.form1.cognome.value)
vartextfield3 = trim(document.form1.email.value)
vartextfield4 = trim(Replace(document.form1.ente.value,"&","xxexx"))
vartextfield6 = trim(document.form1.indirizzo.value)
vartextfield7 = trim(document.form1.cap.value)
vartextfield8 = trim(document.form1.citta.value)
vartextfield9 = trim(document.form1.telefono.value)
vartextfield10 = trim(document.form1.fax.value)
vartextfield11 = "si"
if vartextfield ="" or isnull(vartextfield) then
msgbox " È necessario inserire il Nome."
exit sub
end if

ifvartextfield2 ="" or isnull(vartextfield2) then
msgbox " È necessario inserire il Cognome."
exit sub
end if

if vartextfield3 ="" or isnull(vartextfield3) then
msgbox " È necessario inserire un indirizzo email."
exit sub
end if

if inStr(1, vartextfield3, "@") < 1 then
msgbox " Inserire un indirizzo email valido."
exit sub
end if


if document.form1.trattamentodati.checked = false then
msgbox " È necessario dare il consenso al trattamento dei dati personali."
exit sub
else
vartextfield12 = "acconsento"
end if

window.close()
window.open("form2_giornalisti.asp?nome=" & vartextfield & "&cognome=" & vartextfield2 & "&email=" & vartextfield3 & "&ente=" & vartextfield4 & "&indirizzo=" & vartextfield6 & "&cap=" & vartextfield7 & "&citta=" & vartextfield8 & "&telefono=" & vartextfield9 & "&fax=" & vartextfield10 & "&trattamentodati=" & vartextfield12)

end sub

-->

</script>

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
2 cose:

il window.close() messo una riga prima del window.open() complica le cose: se la finestra si chiude come fa ad essere esseguito tutto il codice successivo? Procedendo in maniera logica non è molto corretto.

Il metodo window.open accetta tre parametri (o per lo meno sono quelli che uso sempre):

window.open(url, frame, parametri)

e proprio nei parametri bisogna stabilire la dimensione della finestra e altre sua proprietà come toolbar, resize, scrolling. Nel tuo caso dovresti fare:

url = "form2_giornalisti.asp?nome=" & vartextfield & "&cognome=" & vartextfield2 & "&email=" & vartextfield3 & "&ente=" & vartextfield4 & "&indirizzo=" & vartextfield6 & "&cap=" & vartextfield7 & "&citta=" & vartextfield8 & "&telefono=" & vartextfield9 & "&fax=" & vartextfield10 & "&trattamentodati=" & vartextfield12
window.open (url, "_blank", "toolbar=no,width=300,height=200,scrollbars=no,resizable=no")


Prova così...

Enjoy learning and just keep making
18 messaggi dal 31 luglio 2002
Sono d'accordo con te sul fatto che la chiusura della finestra segue, logicamente, l'apertura della nuova. Ho quindi spostato window.close() dopo window.open() (anche se funzionava lo stesso). Ho seguito il tuo suggerimento ed inserito il codice che hai postato, ma in questo modo il "submit" non funziona e la finestra viene più aperta.
Grazie comunque
11.886 messaggi dal 09 febbraio 2002
Contributi
Ho riletto meglio il tuo codice, in realtà non c'è bisogno che tu prenda ogni valore dal form e lo metta esplicitamente nella querystring.

Mi riferisco a questo pezzo:

vartextfield = trim(document.form1.nome.value)
vartextfield2 = trim(document.form1.cognome.value)
vartextfield3 = trim(document.form1.email.value)
...
window.open("form2_giornalisti.asp?nome=" & vartextfield...


C'è il metodo GET per questo. Potresti postare la linea in cui compare la chiamata alla funzione Submit_onClick() ?

Inoltre dovresti usare il javascript per queste cose lato client, sai è più compatibile con i vari browser. Netscape stesso non mi pare che supporti il vbscript.

Questi sono i passi:

1. Il tag form dovrebbe essere più o meno così:
<form name="form1" action="form2_giornalisti.asp" method="GET" target="popup">
2. Non mettere un tasto submit ma un bottone convenzionale:
<input type="button" value="invia" onClick="Javascript:Submit_onClick()">
3. Rifai da funzione Submit_onClick in questo modo:
<script language="Javascript">
function Submit_onClick(){
valido = true

//inizia la validazione
if (document.form1.nome.value == ""){
alert("È necessario inserire il Nome")
valido = false
}
if (document.form1.cognome.value == ""){
alert("È necessario inserire il Cognome")
valido = false
}
if (document.form1.email.value == ""){
alert("È necessario inserire l'email")
valido = false
}
if (document.form1.email.value.indexOf("@") == -1){
alert("L'indirizzo email non è valido")
valido = false
}

if (valido){
window.open("", "popup", "toolbar=no,width=300,height=200,scrollbars=no, resizable=no")
setTimeout("document.form1.submit()", 2000)
window.close()
}
}
</script>


vedrai che funziona.
Submit_onClick contiene solamente la validazione dei campi.

Enjoy learning and just keep making
18 messaggi dal 31 luglio 2002
Grazie! Mi hai messo sulla strada giusta. Ho solo aggiunto l'istruzione "return;" dopo ogni if. La chiusura della finestra padre, però, la devo eseguire dalla finestra figlia, con il metodo "window.opener.close()", altrimenti non vengono passati i valori.
Grazie mille dell'aiuto.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.