Ciao a tutti raga,
vorrei premettere che non so quanto sia esplicativo il titolo e soprattutto che sono novello di javaScript.
Il problema è che devo creare DINAMICAMENTE UNA TABELLA ed ogni riga ha un menu a tendina (semplice, con valore SI/NO) con associato un campo INPUT (testo) nell' altra colonna.
Inizialmente, il menu a tendina ha valore NO, quindi il campo di testo è disabilitato.
Il mio problema è che ogni riga che aggiungo (quindi per ogni menu a tendina/campo di testo) devo associare l' evento onChange che, utilizando una function, mi attiva/disattiva il campo di testo a seconda del valore SI o NO del menu (spero di essere stato chiaro).
Cioé:
*appena creo la nuova riga con le due colonne, di default ho il menu a NO e il campo di testo DISABILITATO
*Se il menu a tendina va a SI, il campo di testo viene ABILITATO
*Se il menu a tendina ritorna a NO, il campo di testo viene DISABILITATO
*Se riporto il menu su SI, il campo mi si riattiva e cosi via...
Il mio problema è che non so come prendere il nome di un oggetto da funzione. Vi posto il codice e l'errore per farvi capire meglio.
Le righe e colonne, sono create senza problemi, quando però cambio il valore del menu a tendina ricevo il seguente errore:codice:... // i è il contatore delle righe della tabella che uso per dare nomi univoci var numeroTelefono = document.createElement("INPUT"); numeroTelefono.setAttribute("name","telefono_"+i); numeroTelefono.setAttribute("size",13); numeroTelefono.setAttribute("maxLength",10); numeroTelefono.setAttribute("disabled", true); numeroTelefono.style.background = '#CCCCCC'; var SimABordo = document.createElement("SELECT"); var temp = "sim_a_bordo_"+i; SimABordo.setAttribute("name", temp); temp = "id_select_"+i; SimABordo.setAttribute("id", temp); // inserisco le OPTION in SimABordo SimABordo.options[0] = new Option('No', 'no'); SimABordo.options[1] = new Option('Si', 'si'); // associo all' onchange della SELECT la funzione setInput() SimABordo.onchange = function () { setInput(numeroTelefono, this.value); }; // dove this.value mi tiene traccia del SI/NO del menu. L' ho testato e funziona correttamente. // Il problema penso sia numeroTelefono ... // la funzione setInput è (che nel codice ho dichiatato prima della roba sopra): function setInput(nomeCampoTelefono, value){ if(value == "si"){ document.frm_list.nomeCampoTelefono.name.disabled=false; document.frm_list.nomeCampoTelefono.name.style.background="#FFFFFF"; document.frm_list.nomeCampoTelefono.name.style.color="#000000"; } else { document.frm_list.nomeCampoTelefono.name.disabled=true; document.frm_list.nomeCampoTelefono.name.style.background="#CCCCCC"; document.frm_list.nomeCampoTelefono.name.style.color="#000000"; document.frm_list.nomeCampoTelefono.name.value=""; } } // end setInput
La domanda quindi è: come passo l'oggetto alla funzione?codice:'document.frm_list.nomeCampoTelefono.name' è nullo o non è un oggettoHo provato anche con le () ma niente:
Come sempre un grazie a tutticodice:document.frm_list.(nomeCampoTelefono.name).disabled=false;![]()

.
Ho provato anche con le () ma niente:
Rispondi quotando