c'è il modo per risalire dal this.name al suo percosro ex:
window.document.form.name ? cioè il modo per risalire al this di un oggetto?
c'è il modo per risalire dal this.name al suo percosro ex:
window.document.form.name ? cioè il modo per risalire al this di un oggetto?
Come la metti tu, non e facile.
Dall'oggetto e` facile risalire a tutte le sue caratteristiche, compreso l'oggetto che lo contiene, invece dal name e` piu` complesso.
Esempio:
<input ... onchange="funzione(this);">
nella funzione puoi trovare (per esempio):
codice:function funzione(ogg) { alert("nome="+ogg.name); alert("tipo="+ogg.type); alert("form name="+ogg.form.name); alert("id="+ogg.id); ...
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
io ho esempio i miei campi della forma Calendario che sono anno, mese e giorno...
se voglio il valore di giorno posso mettermi sul giorno e fare this.value, oppure scrivere tutto il percorso completo se non sono sul giorno(es.: window.document.forms.calendario.giorno.value)... c'è un modo per risalire a questo percorso?
Devi risalire ai singoli valori dei name.
Supponendo di avere SEMPRE:
<form name="qualcosa" ...>
<input name="qualcos'altro" ...onblur="percorso(this);">
la chiamata a percorso avviene sempre all'interno di un form
Puoi fare:Nota che la variabile perc e` una stringa, non un oggetto, mentre this individua sempre un oggetto mentre document.calendario.giorno individua un oggetto se usata in maniera appropriata.codice:function percorso(ogg) { var perc = ""; var n = ogg.name; perc = n + "." +perc; n = ogg.form.namel perc = n + "." +perc; perc = "document." + perc; alert(perc); }
Nota che nel tuo
window.document.forms.calendario.giorno.value
window e document sono alternativi (non serve specificarli ambedue)
forms e` una collezione, per cui la tua sintassi non e` corretta. Quella corretta e`:
document.forms['calendario'].giorno.value
oppure:
document.calendario.giorno.value
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati