Eseguire funz. Javascript caricata tramite la funzione Ajax di JQuery in onChange

ironmaiden189

Nuovo Utente
1 Set 2011
2
0
0
Ciao a tutti ragazzi, mi sono iscritto per cercare soluzione ad un problema che ho da qualche giorno, sono nuovo nello sviluppo web e magari può essere una stupidaggine..
Ho una lista drop down con due valori insieme ad altri elementi in un form. Ciò che vorrei fare è attivare quattro componenti del form se l'utente seleziona il primo valore della lista e disattivarli altrimenti.

Nell'applicazione web c'è una pagina principale, e l'utente naviga nel sito aprendo e chiudendo tab dinamicamente con chiamate ajax tramite la libreria JQuery, che rimuovono la pagina corrente e caricano la nuova pagina in un div specifico.
In queste pagine caricate con Ajax ho bisogno di metterci i javascript che verranno utilizzati in quelle pagine, per esempio in questo caso il javascript che attiva/disattiva i componenti, ma non riesco a chiamarlo perchè mi esce l'errore "**Uncaught ReferenceError: soggettiNaturaChangeEvent is not defined**", dove soggettiNaturaChangeEvent è il nome della funzione javascript.

Questo è il punto dove viene chiamata, nella pagina newEditSoggetti.jsp:

HTML:
<form:select id="soggetti_soggettiNatura" path="soggettiNatura" cssStyle="width:300px;" onChange="javascript:soggettiNaturaChangeEvent();">
    ...
    ...
    ...

In quella pagina c'è anche la funzione javascript:

HTML:
   <script id="function1" type="text/javascript">
        alert("soggettiNaturaChangeEvent");
        function soggettiNaturaChangeEvent()
        {
            alert("function soggettiNaturaChangeEvent");
            var natura = document.getElementById('soggetti_soggettiNatura'); 
            var datanascita = document.getElementById('soggetti_soggettiDataNascita');
            var luogonascita = document.getElementById('soggetti_soggettiLuogoNascita');
            var sesso1 = document.getElementById('soggettiSessoID1');
            var sesso2 = document.getElementById('soggettiSessoID2');
            if(natura.value == "Persona fisica")
            {
    		datanascita.disabled=false;
    		luogonascita.disabled=false;
    		sesso1.disabled=false;
    		sesso2.disabled=false;
    	}
    	else
    	{
    		datanascita.disabled=true;
    		luogonascita.disabled=true;
    		sesso1.disabled=true;
    		sesso2.disabled=true;
    	}
    }
    </script>

Qui invece c'è la funzione di refresh dei tab in una libreria di funzioni javascript separata, che chiama uno script di inizializzazione specificato tra i parametri:

Codice:
//reset variabili, riordina tabs, etc...
    $.ajax(action,
    {
    success : function(result)
    {
        //cerca il div dove mettere il contenuto da caricare
	var doc = document.getElementById(newid);
	doc.innerHTML = doc.innerHTML + result;

        //cerca lo script di inizializzazione "scriptId" e lo esegue (E QUESTO FUNZIONA)
	scripts = $('#' + scriptId); 
	eval(scripts.html());
		
        //qui cerco di trovare tutti i tag <script> i cui id iniziano con "function" e applicare la funzione eval
        var jScripts = $("[id^=function]");
	for(var i = 0; i < jScripts.size(); i++)
	{
           eval(jScripts.html());
	   jScripts = jScripts.next();
	}
    }
    });

La pagina stampa la prima alert quando (credo) appende la funzione al DOM, ma quando clicco sul componente che dovrebbe invocare la funzione javascript ottengo quell'errore.
Ciò che vorrei è far partire questa funzione quando clicco sul componente soggettiNatura, non quando ajax finisce di caricare la pagina.

Una piccola nota: se cerco di caricare la pagina normalmente (senza Ajax) la funzione non crea problemi..
Ho una funzione nella pagina principale che mi mostra il codice html corrente dopo tutte le modifiche effettuate dai vari javascript e ajax (puramente per una questione di debug) e la funzione javascript che sto cercando di far eseguire è presente.

Grazie a tutti quelli che cercheranno di aiutarmi!
Andrea
 
Discussioni simili
Autore Titolo Forum Risposte Data
I Eseguire funz. Javascript caricata tramite la funzione Ajax di JQuery in onChange Javascript 0
felino [Joomla 1.5] Backend senza toolbar, impossibile eseguire qualunque operazione Joomla 1
G eseguire calcoli matematici su risultati 2 tabelle mysql PHP 4
antoniomanuel Eseguire più files audio in sequenza Sviluppo app per Android 0
G Eseguire codice solo al termine della chiamata ajax Ajax 1
maxnegri Eseguire un'azione con php ad ogni condivisione su Facebook PHP 0
C Eseguire .sh da php PHP 6
W [Javascript] Eseguire script residente nel sistema da html remota Javascript 0
W Aiutino per compilare o eseguire un App Java Java 0
W [C#] Eseguire contemporaneamente tutti i Thresad su "Multithread" .NET Framework 0
G [Javascript] eseguire test-case Selenium da riga di comando... Javascript 0
P [Javascript] eseguire una funzione dopo un'altra Javascript 0
S [PHP] Eseguire differenza su dati SQL presenti sulla stessa colonna PHP 1
N eseguire pagina php senza aggiornare la pagina Ajax 3
S Eseguire funzione jquery all'interno della risposta ajax Ajax 0
A eseguire funzione dopo scelta dal form PHP 4
L eseguire programmi in c PHP 0
gandalf1959 Chiedere conferma all'utente prima di eseguire una funzione PHP 5
JackIlPazzo Eseguire funzione php senza ricaricare pagina? PHP 3
T [JavaScript & Ajax] Eseguire script dopo chiamata A Ajax 2
felino [Oracle] Eseguire uno split di un record Oracle 1
felino Funzione get_node(): eseguire un replace WordPress 1
J Eseguire un redirect a sito mobile PHP 0
N Eseguire una query MySQL dopo 10 secondi PHP 0
M Eseguire codice php contenuto in una variabile e salvarne il risultato in un'altra PHP 2
G Dividere stringa ed eseguire query PHP 3
F Eseguire PHP in jQuery jQuery 3
A eseguire codice js caricandolo dinamicamente in un DIV Javascript 2
ivarello eseguire exec() lato Client PHP 1
A eseguire codice html da funzione javascript Javascript 2
X Eseguire controllo su variabili php PHP 1
M eseguire un comando da php PHP 2
1 eseguire operazioni pianificate PHP 3
Z Eseguire una Query tramite linguaggi client-side è possibile? Ajax 3
M Ajax: eseguire chiamate cross-domain Ajax 1
S Eseguire controlli sul form delle foto PHP 17
G eseguire un ciclo for next su applicazione di un sito web Javascript 1
S [Vb.net] Eseguire un programma richiamando l'explorer di windows o il comando esegui .NET Framework 1
C Eseguire script ajax nella stessa pagina index.php Ajax 2
S [Vb.net] Eseguire un exe contenuto nel file di risorse .NET Framework 1
G eseguire gedit con shell_exec() PHP 3
neo996sps Eseguire script perl da pagina PHP PHP 3
I Eseguire foreach una volta PHP 4
I Eseguire query con ciclo PHP 2
I Eseguire query in funzione PHP 2
X eseguire due query aiuto PHP 1
N Eseguire codice javascript HTML e CSS 1
R Eseguire variabile da pulsante PHP 0
D Eseguire file exe su aruba Hosting 7
M Script da eseguire su più elementi div in una singola pagina web Javascript 0

Discussioni simili