Technology [AJAX Prototype] Aggiornare tag value di un input

Epitaffio

SoHead Technician
Questo è un problema abbastanza relativo, ma che vorrei comunque risolvere per capire dove sta l'errore, venendo al dunque..

Tramite tutta una serie di operazioni, ottendo una lista di ragioni sociali + codice (non so trasportare indietro due variabili tramite l'ajax.autocompleter :zhat: ), una volta selezionata una di queste ragioni, viene modificata la input con questa ragione+codice.

Ora il mio obbiettivo è prendere il codice e portarlo nella relativa input (il codice è preformattato, quindi mi basta prendere il numero di caratteri formattati ed ho codice e ragione separati).

Il tutto su IE7 funziona alla perfezione, mentre su FF3.5, non va. Da quel che ho capito, in pratica è qualcosa relativo al DOM del browser, perchè se attivo fire bug, nel tag value della input c'è solo la ragione (quindi lo script e le funzioni han funzionato :look: ) mentre "a video" mi rimane la casellina con scritto sia la ragione sia il codice O_o

Da cosa può dipendere?


Il Codice:
la prima riga commentata, funzionava comunque su IE, mentre su FF non mi da la riga che seleziono
Codice:
 //var rag = $('ragione').readAttribute('value');

 var form = $('myform');
 var input = form['ragione'];
 var rag = $F(input);

 var cod = rag.substring(rag.length-6,rag.length);
 var rag = rag.substring(0,rag.length-7);

 $('codice').writeAttribute( {value: cod});
 $('ragione').writeAttribute( {value: rag});
 $('ragione').writeAttribute( {style: ""});


E lo screen relativo alla situazione sotto FF:
vpufti.jpg
 

Epitaffio

SoHead Technician
Ok, un aggiornamento.

Ho appena scoperto che se mi posiziono nella text della ragione e scrivo qualcosa e poi provo a far cambiare il tag value, fire bug mi trova il valore corretto, mentre a video rimane quel che avevo scritto io che in pratica è la stessa sequenza logica dello script (al posto di scrivere manualmente, ci scrive l'autocompleter).

Quindi ora la domanda è chiara (almeno quella :badlook: ), come faccio ad aggironare il "video" di firefox? e perchè su IE invece non c'è questo problema?

Se non riesco a scoprire questo di su, dovrò capire come trasportare invece che una singola variabile, due variabili tramite l'aucompleter..
 

Asmoug

Typing Monkey
cosi' a occhio e spanna la prima cosa che mi viene in mente è che invece di writeattribute e readattribute puoi banalmente fare $("pippo").value = "123"; ... magari risolvi, non ricordo di aver mai avuto problemi a accedere ai value...
 

Massi™

Typing Monkey
Ma per i campi di input c'è anche la comodissima shortcut $F

Prova a fare $F('campo').setValue('Valore');
 

Epitaffio

SoHead Technician
Mhm, domani proverò entrambi e vi farò sapere..


Se magari poteste provarlo anche voi al volo, mi ero fatto uno scriptino pulito per fare test, mi fareste davvero un favorone (ovviamente su FF ^^")

Codice:
<html>
<head>
<script src="include/js/prototype.js" type="text/javascript"></script>
<script>
function recupera_codice(){
 var rag = "F.ESTERO= TIMBER TRADE & SERVICE  000580";
 //alert(rag);
 var cod = rag.substring(rag.length-6,rag.length);
 var rag = rag.substring(0,rag.length-7);

 $('codice').writeAttribute( {value: cod});
 $('ragione').writeAttribute( {value: rag});
 $('ragione').writeAttribute( {style: ""});
}
</script>
</head>
<body>

<input type="text" name="codice" id="codice" class="vis_intest_codice" size="10" maxlength="6" value="" />&nbsp;
<input type="text" name="ragione" id="ragione" class="vis_intest_ragione" size="80" value="" />

<input name="" type="button" onclick="recupera_codice()" />

</body>


Grazie :tru:
 

Asmoug

Typing Monkey
beh bello lo snippet ma dipende dal prototype.js ... ne avevo uno intorno ma non so che versione fosse

comunque a me funziona, nella casella a sinistra vedo il codice a 6 cifre e in quella a destra il nome
l'ultimo settaggio dello style non penso sia realmente settabile, o per lo meno se lo cambi in "pippo.style=''" da' un warning

firefox 3.0.11 su ubuntu 9.04 64-bit
 

Epitaffio

SoHead Technician
Questo premendo direttamente il pulsante?

Se provi a scrivere nella text di destra e poi premere il pulsante, funziona uguale?
 

Epitaffio

SoHead Technician
Alur, il metodo di asmoug funziona perfettamente, massi il tuo non son riuscito a provarlo al volo che non ho un form (visto che quel metodo dovrebbe valere solo nei form, almeno a memoria) di prova sotto mano e ora non ho tempo per altre prove.

Grazie comunque ad entrambi :fap:
 
Alto