ciao a tutti , ho un problema ;
io ho un form ( direi abbastanza lunghino :P ) in cui alcuni campi sono condizionati da determinate scelte
esempio :
ho 2 radio button ( stesso nome ) valore SI/NO
la scelta si Mi abilita i campi A & Bi e disabilita C & D , la scelta NO abilitita C & D e disabilita A & B
per fare ciò ho associato al radio button SI una funzione onclick :
e al radiobutton NO un'altra funzione ( con nome diverso ) che fa esattamente il contrariocodice:function miafunzione() { document.getElementById('A').disabled=false; document.getElementById('B).disabled=false; document.getElementById('C').disabled=true; document.getElementById('D').disabled=true; }
va anche detto che essendo la scelta preinpostata su NO i campi A & B sono inizializzati con disabled="true"
fatta cosi funziona perfettamente , ora vorrei fare qualcosa di piu carino ovvero , se il campo è disabilitato non deve essere visualizzato ( o meglio non deve essere visualizzata l'intera riga dato che ho usato delle tabelle , che contiene quel campo)
ho trovato , in seguito ad una ricerca questo codice
e tendenzialmente ho capito come funziona c'è un campo in una tabella impostato con display none e quando si va a flaggare il chackbox parte l'evento onclick che disabilita il display none rendendo quindi il campo visibile.codice:<html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> function cancella_valore(chkbox,elem) { if (document.getElementById(checkbox).checked==false) { document.getElementById(layer3).value = ''; } } function ExpandDisp(id) { var style; if (arguments.length != 1) throw new Error("function ExpandDisp() incorrectly called"); style = document.getElementById(id).style; style.display = ((style.display == "none") ? "block" : "none" ); return false; } </script> </head> <body> <form name="form1" method="post" action="prova2.asp"> <input name="checkbox" type="checkbox" value="ulteriori_opzioni" onClick="ExpandDisp('Layer3');"> cliccka per avere altri campi </div> <div id="Layer3"style="display:none;"> <TABLE border="0" cellpadding="3" cellspacing="1" width="510" bgcolor="#ffffff"> <TR bgcolor="#ffffff"> <TD valign=top><input name="textfield2" type="text" value=""></TD> </TR> </TABLE> </div> <input type="submit" value="Submit" name="B1"></form> </body> </html>
il problema è che ho provat ad impostarlo sul mio form ma nn ci sono riuscito
il primo problema è :
-come faccio ad assegnare un secondo evento onclick al radiobutton SI [il primo è quello che abilita disabilita , il secondo sarebbe quello che mostra nasconde]
- come faccio a far si che una volta impostato ( ad esempio SI ) l'unico modo per visualizzare i campi impostati per il NO sia solo cliccare su NO ? ( dato che da un tentativo mi è capitato che continuando a premere su SI [radio] ad ogni click switchava lo status dei campi
- come faccio a far si che una volta clicckato si ( sempre esempio ) mi mostri determinati campi e altri li nasconda ?
spero di essere stato chiaro .. se qualcosa non dovesse risultarlo cercherò di essere piu preciso.
grazie a chiunque voglia/possa aiutarmi ^_^

Rispondi quotando