CFFORM Javascript Onsubmit

Uno dei metodo più usati per fare il check di un form è il seguente:

<form name="frm_ins" action="contatti.cfm" method="post" onsubmit="return check_data(this);">

</form>

 

Alla funzione check_data() viene passato direttamente l’oggetto form a cui facciamo riferimento, e se la funzione restituisce true, il form viene inviato, altrimenti l’invio viene annullato.

 

Ma perchè questo modo di utilizzare form e javascript non funziona con CFFORM il tag di Coldfusion che introduce una serie di controllo "automatici"? Cerchiamo di capire come è fatto CFFORM e quindi capire il perchè…

CFFORM (con il check dei campi lato client) viene tradotto in un normale FORM con nell’evento OnSubmit la chiamata ad una funzione JS di coldfusion.

Alla fine della funzione coldfusion di controllo, molto intelligentemente, coldfusion server va ad inserire anche il nostro controllo personalizzato e quindi la chiamata della funzione check_data(this). Il problema fondamentale è proprio questo: this in questo caso non assume più il valore che volevamo noi.

 

Per utilizzare quindi il nostro controllo JS con CFFORM dobbiamo sostituire il parametro this con il percorso completo dell’oggetto form:

 

<form name="frm_ins" action="contatti.cfm" method="post" onsubmit="return check_data(document.frm_ins);">

</form>

 

… e tutto funzionerà a dovere!

Loading Facebook Comments ...

Un pensiero su “CFFORM Javascript Onsubmit

  1. Merlinox

    Sono proprio un oco.
    Prima scrivo questo bel post qui, e poi ieri ricasco sullo stesso errore sbattendo la testa contro il muro (e il monitor) perchè non mi funzionavano i controlli del onSubmit… che mona che sono!

    Rispondi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *