[DIFFICILE] Cambiare onsubmit al volo

dead

Utente Attivo
22 Lug 2005
687
0
0
53
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;
}
}
}
}
}
 

PoLe

MRW Moderator
6 Giu 2005
2.210
3
0
36
.: Venezia :.
www.bzconsulting.it
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:
 

mythar

Utente Attivo
16 Gen 2006
148
0
0
41
Naples
Non per farmi i fatti tuoi, ma mi spieghi a che ti serve?
Probabilmente potremmo trovare una soluzione + semplice al problema.
 

dead

Utente Attivo
22 Lug 2005
687
0
0
53
Brescia
www.dead.it
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:
 

dead

Utente Attivo
22 Lug 2005
687
0
0
53
Brescia
www.dead.it
Faccio qualke prova e ti posto la soluzione, se la trovo.
Ti ringrazio, ma ieri sera ho risolto cambiando alcune cose nello script php. In pratica il mio oggetto diventa un estensione di una classe php già esistente, ed in questo modo ho molto meno bisogno del JS.

Grazie comunque.