[DIFFICILE] Cambiare onsubmit al volo

  • Creatore Discussione Creatore Discussione dead
  • Data di inizio Data di inizio

dead

Utente Attivo
22 Lug 2005
684
0
0
58
Brescia
www.dead.it
Problema:
ho una pagina html con al suo interno svariati form (non so a priori quanti)

al caricamento della pagina (in pratica al window.onload) devo scrivere "al volo" un evento onsubmit senza cancellare quelli eventualmente già scritti da codice.

cioè io vorrei che l'attributo onsubmit="pippo()" diventasse al volo onsubmit="pippo();RecuperaTesto()"

Per adesso l'unica soluzione che ho trovato (e che funziona solo se il form è uno solo) è di scrivere l'intera funzione RecuperaTesto() nella funzione ScriviOnsubmit()

Per di più mi cancella quello che già c'era scritto nell'onsubmit

siccome di javascript non ci capisco una mazza non riesco ad uscirne...

Riporto il codice per chiarezza :( :

window.onload = function ScriviOnsubmit() {
document.forms[0].onsubmit = function RecuperaTesto(){
var oggetti;
var testo="";
oggetti= document.getElementsByTagName("object");
i=0;
while(i < oggetti.length) {
if(oggetti.item(i).type=="application/x-xstandard"){
if (oggetti.item(i).getAttribute("id")){
testo=oggetti.item(i).id;
}
j=i+1;
xhtmlinput="xhtml"+j;
alternate="alternate"+j;
i++;
try {
if(typeof(document.getElementById(testo).EscapeUnicode) == 'undefined') {
throw "Error"
} else {
document.getElementById(testo).EscapeUnicode = true;
document.getElementById(xhtmlinput).value = document.getElementById(testo).value;
}
}
catch(er) {
document.getElementById(xhtmlinput).value = document.getElementById(alternate).value;
}
}
}
}
}
 
Hola amigo! :D

Ho letto il problema e ho già una mezza idea, solo non ho proprio tempo per aiutarti ora :p

Appena ho tempo (i prossimi giorni ormai) provo a darti una mano, sempre che qualcun altro non lo faccia prima ;)

SaLuT!
:byebye:
 
Non per farmi i fatti tuoi, ma mi spieghi a che ti serve?
Probabilmente potremmo trovare una soluzione + semplice al problema.
 
Non per farmi i fatti tuoi, ma mi spieghi a che ti serve?
Probabilmente potremmo trovare una soluzione + semplice al problema.

Devo integrare un editor in un CMS.

Il problema è che l'editor è un <object> e quindi non passa variabili (il testo scritto dall'utente) al POST.
Quindi ho inserito un input hidden (xhtmlinput) associato all'object.
Devo scrivere un javascript in modo che prima di fare il submit della pagina, il testo venga passato come value all'input hidden, in modo da averlo come variabile nel POST.

La cosa è complicata da vari fattori:
-in ogni form vi possono essere più di un editor
-in ogni pagina vi può essere più di un form
-gli eventi submit del form non li scrivo io perche fanno parte del codice del CMS, e se li sovrascrivo, altre parti del CMS non funzionerebbero più
- se aggiungo a manina il mio codice al submit funzionerà sul mio CMS, ma non su quello degli altri.
:crying:
 

Discussioni simili