Visualizzazione dei risultati da 1 a 3 su 3

Discussione: anomalia onsubmit

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    53

    anomalia onsubmit

    ho questo form
    <form name="gestione_record" id="gestione_record" method="post" action="#"
    onsubmit="">

    e vorrei impostare l'onsubmit a mio piacimento

    ho trovato questa funzione in rete per aggiungere un evento:
    function addEvent(obj,type,fn) {
    if (obj.addEventListener) obj.addEventListener(type,fn,false);
    else if (obj.attachEvent) {
    obj["e"+type+fn] = fn;
    obj[type+fn] = function() {obj["e"+type+fn](window.event);}
    obj.attachEvent("on"+type, obj[type+fn]);
    }
    }

    allora il problema è questo, se scrivo a mano la form così:
    <form name="gestione_record" id="gestione_record" method="post" action="#"
    onsubmit="return window.confirm('confermi?');">

    cliccando su annulla mi interrompe l'azione del form,

    se scrivo:
    window.onload = function()
    {
    addEvent(document.getElementById('gestione_record' ),'submit',return
    window.confirm('confermi?');
    }

    mi esce il messaggio "Confermi?" ma se clicco su annulla non mi interrompe
    l'azione del form

    ciao a tutti il gruppo

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se usi attachEvent/addEventListener non puoi ritornare nulla,
    ma puoi simulare il return false con l' event.preventDefault() o settando l' event.returnValue=false per IE

    codice:
    function toSubmit(e){
    	e=e||window.event;
    	if(!confirm('confermi?')){
    		if(e.preventDefault) e.preventDefault();
    		else e.returnValue=false;		
    	}
    	// se non bloccato, l' evento si propaga ugualmente e il form viene inviato
    }
    addEvent(document.getElementById('gestione_record' ),'submit',toSubmit);

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    53
    Originariamente inviato da Xinod
    se usi attachEvent/addEventListener non puoi ritornare nulla,
    ma puoi simulare il return false con l' event.preventDefault() o settando l' event.returnValue=false per IE

    codice:
    function toSubmit(e){
    	e=e||window.event;
    	if(!confirm('confermi?')){
    		if(e.preventDefault) e.preventDefault();
    		else e.returnValue=false;		
    	}
    	// se non bloccato, l' evento si propaga ugualmente e il form viene inviato
    }
    addEvent(document.getElementById('gestione_record' ),'submit',toSubmit);

    ciao
    grazie per la risposta, faccio qualche prova e poi faccio sapere

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.