Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    problema con proprietà value

    Ciao a tutti,
    ho creato un'applicazione che tra le altre cose gestisce un'anagrafica clienti.
    Al premere di un determinato pulsante, viene caricato tramite chiamata ajax,all'interno di un div ben definito, una maschera di inserimento campi.

    Al momento di effetuare il postback dei dati, sempre tramite chiamata ajax, vado a leggere i vari campi, solo che succede qualcosa di strano.

    Leggo n campi senza problemi, finchè ad un certo punto ,nel momento in cui tento di leggere l'input box del campo "fax", ottengo un errore.
    Ho controllato più e più volte se vi siano errori di battitura, ma non ce ne sono.

    L'input box è cosi' definita:
    codice:
    <input type="text" id="fax" name="fax" value="blablabla" />
    Prelevo l'oggetto tramite una classica
    codice:
    document.getElementById('fax')
    e facendo un alert mi dice che l'oggetto esiste, non è null. Quindi lo trova.
    Nel momento in cui tento di accedere alla proprietà 'value' mi viene dato un errore di "proprietà o metodo non esistenti".
    La cosa divertente è che con chrome funziona alla grande, l'errore viene restituito solo con ie8...

    Ho provato anche con Jquery
    codice:
    $('input:text[name=fax]').val()
    ma funziona con chrome e non in ie8...

    In seguito ho fatto qualche altro esperimento:
    codice:
    <input style="width:100%" type="text" id="fax" name="fax" value="blablabla" onKeyUp="alert(document.getElementById('fax').value)"/>
    che funziona...e mi viene da ridere, ma se richiamo con
    codice:
    document.getElementById('fax').value
    da qualsiasi altro punto, mi ritorna errore...
    Non so più dove sbattere la testa...

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto, sicuro non ci sia un altro nome/id/for/label/etc... con lo stesso nome? Prova anche a postare il link alla pagina pubblica cosi da poterla testare meglio.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Grazie per il benvenuto.
    Non posso pubblicare il link per 2 motivi:
    - il programma è attivo in una intranet e non vi è accesso esterno;
    - il programma si appoggia ad un db che contiene dati sensibili...

    Sono sicuro che non esista niente altro con lo stesso id/nome/label/for. La prima cosa che ho fatto è stata cambiare l'id/nome con qualcosaltro temendo che 'fax' fosse una parola riservata.

    Ho inoltro ricercato dove ho usato il termine "fax" all'interno di tutti i sorgenti creati, e non esiste nulla al quale venga associato tale termine se non nell'input box.

    Ho fatto un'altra prova stupida: all'evento onKeyUp ho associato una funzione che prende il riferimento l'oggetto associato alla casella di input e lo inserisce in una variabile globale. Questa variabile viene poi richiamata al posto del getElementById('fax'). Così funziona, ma ovviamente è un metodo barbaro e comunque non mette in evidenza cosa non digerisce ie...

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    difficile dare spiegazioni sul riportato comunque se cosi funziona, importante è risolvere.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Ok, ho estratto il codice e ridotto all'osso.
    Su ie8 non funziona:
    codice:
    <html>
    <head>
    <script type="text/javascript">
    	function ok(){
    		rs	=document.getElementById('ragione_sociale').value;
    		ind	=document.getElementById('indirizzo').value;
    		prov=document.getElementById('provincia').value;
    		cf	=document.getElementById('codice_fiscale').value;
    		piva=document.getElementById('partita_iva').value;
    		tel	=document.getElementById('telefono').value;
    		alert("al telefono arrivo");
    		fax	=document.getElementById('fax').value;
    		alert("al fax no");
    		note=document.getElementById('note').value;
    	}
    </script>
    </head>
    <body onload="ok()">
    	codice cliente<input readonly type="text" id="codice_cliente" name="codice_cliente"/>
    
    	ragione sociale<input type="text" id="ragione_sociale" name="ragione_sociale" />
    
    	indirizzo<input type="text" id="indirizzo" name="indirizzo" />
    
    	provincia<input type="text" id="provincia" name="provincia" />
    
    	codice fiscale<input type="text" id="codice_fiscale" name="codice_fiscale" />
    
    	partita iva<input type="text" id="partita_iva" name="partita_iva" />
    
    	telefono <input type="text" id="telefono" name="telefono" />
    
    	fax	<input type="text" id="fax" 	 name="fax" />
    
    	stessa destinazione<input type="checkbox" id="stessa_destinazione" name="stessa_destinazione" />
    
    	note<input type="text" id="note" name="note" />
    
    </body>
    </html>
    EDIT: ho provato nuovamente a modificare l'id ed il nome, sostituendoli in "faxus"... così funziona ma mi ha dato errore all'input successivo, "note".
    Ho sostituito quindi "note" con "mynotes" e così ha funzionato correttamente.
    Evidentemente in ie alcuni id provocano problemi ed è opportuno utilizzare qualcosa di personalizzato, tipo my_fax, my_note, ecc...

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non puoi usare variabili con lo stesso nome del valore name dei campi del form... IE puo' referenziarli direttamente e non capisce se ti riferisci alla variabile o al campo.

    var fax = document.getElementById("fax")
    alert(fax.value)

    o anche

    var fax = document.getElementById("fax").value
    alert(fax) // non sa se vuoi l'oggetto campo del form o la variabile...

    Prova a fare direttamente alert(fax.value) con IE

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    fax=document.getElementById('fax').value;

    troppi fax e IE si impappina,
    non hai notato che lo farebbe pure con note?

    faxo=document.getElementById('fax').value;
    alert(faxo)

  8. #8
    Capito, grazie. Non sapevo che ie potesse referenziarli direttamente, si spiega molto bene il perchè non funzionasse e il perchè me lo fa solo appunto con fax e note.

    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.