Newsgroup: it.comp.lang.javascript
Titolo: Cambiare dinamicamente il tipo HTML

Come posso cambiare dinamicamente il tipo HTML di un checkbox in text
?
Cross Browser possibilmente...
Con IE 5.5 posso farlo riscrivendo l'outerHTML, con Mozilla 1.3
semplicemente settando il valore dell'attributo type a 'text'..
Qualcosa di piu' standard ?
grazie a tutti..
In realtŕ il mio problema č quello di avere tanti checkbox con lo
stesso nome in una pagina JSP.. sfortunatamente quando viene eseguito
il submit del form vengono sottomessi solo quelli checked...
Visto che non posso cambiare il nome e nemmemo il value devo poi
riconoscere quali sono stati checkati e quali no...
il tentativo č quello di trasformali in text.. in questo modo vengono
sottomessi tutti?

Perché non aggiungi un campo hidden con il totale delle checkbox create?
Quando fai il submit lo verifichi e sai quante devono essere; quelle che
mancano sono quelle non selezionate...
Magari nel tuo caso non serve, però però...

...


 sottomessi tutti?
E' un po' un approccio da teppista, non e' cross-browser e dovresti 
cambiare metodologia dipendentemente dal browser. Non mi pare una 
strada da percorrere.
Per capire meglio il tuo problema, e vedere che tipo di approccio 
usare, ti pongo un altra domanda: Qual'e' la ragione per cui devi 
sapere quale righe hanno i check spuntati, e - soprattutto - quali no?
Perche' non ti "basta" solo sapere chi sono stati selezionati?
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

Grazie ZERO.. ti spiego...
ho tante righe omogenee che rappresentano ognuna un record di
database.
Tutte queste "righe" sono in un unico form.
fai finta che le colonne siano:
Utente  | Password  | Amministratore?
dove utente è un text e amministratore è un check box.
avendo "n" di queste righe quando sottometti il form devo associare lo
stato di amministratore ad ogni singolo utente.
Premesso i vincoli di cui sopra... ossia che non posso cambiare il
nome (id e name) ai chechbox e nemmeno il value.
L'idea di base (e funzionante ad esclusione di checkbox e radio
button.. escludo l'upload) e' quella di sottomettere tutto...
tramite JSP/Servlet richiedo "dammi tutti i campi chiamati XXXX" e si
ottengono degli array. gli indici degli array sono le righe.
quindi per sopra avrei 3 array tutti di uguale dimensione e riesco a
ricostruire tutto... ma con i check box e radio .. nisba.
ciao e gazie

 ricostruire tutto... ma con i check box e radio .. nisba.
Il problema e' che lui ti invia "n" texbox, ma solo i checkbox 
selezionati, quindi se tu hai un array di textbox di 30, e hai solo 10 
amministratori, non sai quali sono questi 10, dei 30 utenti, giusto?
Anche se non mi piace un granche' (ma dato il contesto si puo' far 
poco) una soluzione potrebbe essere:
Ti crei UN campo hidden. Nell'evento onsubmit ti cicli tutti i checkbox 
presenti (da 0 a n) e ti salvi solo gli "indici" di quelli checkati.
Per fare un esempio, se hai 40 checkbox ed hai avvalorato solo il 
terzo, il quinto e l'undicesimo, il campo hidden avra' come value: 
3,5,11
In questo modo lato server hai una corrispondenza indice utente/indice 
checkbox.


Grazie ancora Zero...
Mi hai dato cmq una idea alternativa alla mia prima...
Tu ritieni che l'approccio sia sbagliato... considera però che sto
utilizzando delle componenti riutilizzabili.. quindi se voglio
riutilizzarle devo normalizzare tutti i flussi..
Tu che idee avresti in situazioni del genere ? ossia di data entry
full screen ?
(quindi una specie di foglio excel)
ciao

 (quindi una specie di foglio excel)
Tendo ad evitare i "data entry fullscreen", in quanto vi sono soluzioni 
migliori, dipendentemente dal contesto. Un data entry full screen e' 
fin troppo generalizzato, e non guida sufficientemente l' "utonto" 
finale. Almeno, per le esperienze che ho avuto io ho sempre trovato un 
alternativa.
Cmq, se il tuo "data entry" e' per una web application intranet IE-
based, fai prima a utilizzare un activeXObject di una datagrid (io 
sinceramente li detesto, ma se proprio uno deve usarli..); se invece 
vuoi manterti solo su codice web, usando gli standard del w3c, ti 
consiglierei l'uso di XML/XmlHttpRequest().


Hai ragione... non è per una gestione utenti... ma un gestionale
applicativo web based.
E sfortunatamente gli utenti finali vogliono in alcune situazioni dei
data entry full screen..
Cmq ho risolto tutto, ovviamente il codice non è completamente cross
browser tra IE e Mozilla... ma costruendo una funzione che wrappa il
"change type" è tutto risolto.
Con Mozilla (1.3) la proprietà type è read/write.. quindi basta
settare quella, mentre con  IE (5.5) usando createElement per creare
un elemento ex novo aggiungendo e rimuovendo quello originale...
funziona tutto.