perchè con :
<type="button" onClick="('ELIMINA.asp')"
mi apre la pagina ma non mi posso prelevare i dati del form?
perchè con :
<type="button" onClick="('ELIMINA.asp')"
mi apre la pagina ma non mi posso prelevare i dati del form?
Perché in pratica gli hai detto solo di eseguire un'azione (in particolare, andare alla pagina ELIMINA.asp), non di fare il "submit" del form.
Ci sono diversi modi per farlo, eccone un paio:
Oppure, se vuoi proprio usare un bottone:Codice PHP:
<form name="mioform" method="post" action="ELIMINA.asp">
...
<input type="submit" value="Elimina">
</form>
Codice PHP:
<form name="mioform" mthod="post" action="ELIMINA.asp">
...
<input type="button" value="Elimina" onclick="document.mioform.submit();">
</form>
Michele
King Of The Kill
ho provato cosi dato che prima di continuare chiedo la conferma dell'eliminazione:
<input name="elimina" value="Elimina Notizie" type="button" onClick="return risposta_elimina('document.form1.submit')" >
e la funzione:
<script language="JavaScript">
function risposta_elimina(del) {
var el=confirm("Vuoi eliminare i MESSAGGI selezionati?");
if (el)
window.location.href=del;
else
window.location.href="elenco.asp";
}
</script>
ho notato che se tolgo la parte "return risposta_elimina" funziona,
ma se la lascio non riesce a trovare la pagina.
alla funzione passi la stringa 'document.form1.submit'... non ha molto senso...ho provato cosi dato che prima di continuare chiedo la conferma dell'eliminazione:
<input name="elimina" value="Elimina Notizie" type="button" onClick="return risposta_elimina('document.form1.submit')" >
e la funzione:
<script language="JavaScript">
function risposta_elimina(del) {
var el=confirm("Vuoi eliminare i MESSAGGI selezionati?");
if (el)
window.location.href=del;
else
window.location.href="elenco.asp";
}
</script>
Se proprio vuoi passare qualcosa, passa l'oggetto "form1".
e la funzione:Codice PHP:
<input name="elimina" value="Elimina Notizie" type="button" onClick="return risposta_elimina(document.form1);" />
Comunque, io toglierei la chiamata della funzione dal bottone (onclick). Piuttosto, mettila nel tag form con gli attributi onsubmit="return risposta_elimina();" e action="paginaDiDestinazione.asp".Codice PHP:
<script language="javascript">
function risposta_elimina(myForm) {
var el=confirm("Vuoi eliminare i MESSAGGI selezionati?");
if (el) {
myForm.submit();
return true;
} else {
window.location.href="elenco.asp";
}
return false;
}
</script>
Javascript e HTML diventano:
Perché usi type="button"? Se usi type="submit", il browser tenta subito di inviare i dati del form, non c'è bisogno che gli associ una funzione onclick.Codice PHP:
<script language="javascript">
function risposta_elimina() {
var el=confirm("Vuoi eliminare i MESSAGGI selezionati?");
if (el) {
return true;
} else {
window.location.href="elenco.asp";
}
return false;
}
</script>
<form name="mio_form" action="paginaDiDestinazione.asp" method="post" onsubmit="return risposta_elimina();">
// Contenuto del form...
<input type="submit" name="elimina" value="Elimina Notizie" />
</input>
</form>
Questo processo però viene anticipato da ciò che inserisci nell'attributo onsubmit del form. In questo caso, una richiesta di conferma. Altre volte invece è necessario convalidare, mediante altre funzioni javascript, i dati inseriti nel form.
Michele
King Of The Kill
grazie, ho provato come hai detto e funziona perfettamente.
Ho provato ad inserire prima
<script language="javascript">
function risposta_elimina() {
* if (form1.elen.value=="") {
* alert("Selezionare almeno un valore!");
* return false;
}
var el=confirm("Vuoi eliminare i MESSAGGI selezionati?");
if (el) {
return true;
} else {
window.location.href="elenco_inviate.asp";
} ecc....
ma non funziona il controllo se ho selezionato nessuna check
dov'e' l'errore?
Dipende da come hai costruito il tuo form e da come hai creato le checkbox.
Così a naso direi però che hai almeno due errori:
1) all'interno della funzione usi form1, che non hai definito.
O glielo passi come argomento
e poi definisci la funzione con un parametro in ingresso:Codice PHP:
onsubmit="return risposta_elimina(this);"
oppure lo definisci all'interno della funzione stessa (se però intendi usare la funzione solo per quello specifico form):Codice PHP:
function risposta_elimina(myForm) {
// ... al posto di form1 dovrai utilizzare myForm
}
2) se hai una checkbox sola, questo è l'altro errore:Codice PHP:
function risposta_elimina() {
var form1 = document.mioForm;
// ...
}
Dovrebbe essere:if (form1.elen.value=="") {
oppureCodice PHP:
if (form1.elen.checked==false) {
Se hai più checkbox probabilmente dovrai utilizzare un ciclo for e verificare che non ce ne sia neanche una impostata su true.Codice PHP:
if (!form1.elen.checked) {
Se non riesci, posta l'html completo che gli dò un'occhiata.
Comunque, un consiglio: per controllare cosa succede mentre fai una chiamata ad una funzione javascript, ogni tanto inserisci un window.alert('messaggio di alert');
Esempio:
Codice PHP:
<script language="javascript">
function risposta_elimina(myForm) {
// mostra il valore della checkbox di nome "elen", appartenente al form passato come parametro alla funzione
window.alert(myForm.elen.checked);
// poi prova a sostituire con window.alert(myForm.elen.value);
if (myForm.elen.checked==false) {
alert("Selezionare almeno un valore!");
return false;
}
var el=confirm("Vuoi eliminare i MESSAGGI selezionati?");
if (el) {
return true;
} else {
window.location.href="elenco.asp";
}
return false;
}
</script>
Michele
King Of The Kill
scusa,
ho provato a fare una rettifica cosi:
<script language="javascript">
function risposta_elimina() {
// mostra il valore della checkbox di nome "elen", appartenente al form passato come parametro alla funzione
window.alert(document.form1.elen.checked);
// poi prova a sostituire con window.alert(myForm.elen.value);
if (document.form1.elen.checked==true) {
alert("Selezionare almeno un valore!");
return false;
}
var el=confirm("Vuoi eliminare i MESSAGGI selezionati?");
if (el) {
return true;
} else {
window.location.href="elenco_inviate.asp";
}
return false;
}
</script>
E se non seleziono niente mi manda il messaggio cosi:
UNDEFINED
m poi va subito alla confirm senza mandare il messaggio alert
(ps: ho provato anche con false)
adesso funziona perche ho modifcato cosi
ho cambiato false con : undefined
e funziona....
grazie!!!!
function risposta_elimina() {
// mostra il valore della checkbox di nome "elen", appartenente al form passato come parametro alla funzione
window.alert(document.form1.elen.checked);
// poi prova a sostituire con window.alert(myForm.elen.value);
if (document.form1.elen.checked==undefined) {
alert("Selezionare almeno un valore!");
return false;
scusa di nuovo.
non funziona nel senso che se seleziono e se non seleziono
mi da sempre il mesasggio che non ho selezionato niente.
quindi il problema è li?
Non mi hai detto quante checkbox hai. La situazione cambia se ne hai una o se ne hai più d'una.
Mi fai vedere l'html del tuo form?
Michele
King Of The Kill