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

    Valori alternativi attribuiti onclick

    Ho esemplificato la tabella ma il sunto è sempre il solito:

    vorrei data la seguente tabella:

    <form name='layoutform' method='post' action=''><table width='400' border='1'>
    <tr onclick="
    if (document.layoutform.id_sel1.value=='SI') { document.layoutform.id_sel1.value='NO'; }
    if (document.layoutform.id_sel1.value=='NO') { document.layoutform.id_sel1.value='SI'; }
    ">
    <td id='id_td_sel1' width='100'><input id='id_sel1' name='sel1' value='NO' type='text' style='width:50px;' /></td>
    <td id='id_td_a1' width='100'>a1</td>
    <td id='id_td_b1' width='100'>b1</td>
    </tr>
    </table>
    </form>
    Che cliccando sul rigo, alternativamente mi inserisse SI oppure NO nel campo ma evidentemente sbaglio qualcosa. Con queste istruzioni riesco solo a dare il primo valore 'SI' al campo.
    Ultima modifica di riccardo1975; 17-10-2013 a 19:58
    Prima o poi anch'io vi insegnerò qualcosa

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    premetti al secondo if un else

  3. #3
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    È perché vengono poi comunque eseguite entrambe! In partenza c'è il NO, e al click la prima soprassiede, la seconda interviene e mette il SI.
    Dopo però, al click successivo è la prima che giustamente ora interviene e rimette il NO per un istante (teorico); ma questo non preclude la seconda istruzione dall' essere a sua volta eseguita, e cosa fa'? Si trova il NO e rimette il SI - che rimane.
    I click successivi replicano questa situazione.

    L' else o l' else if che già ti ha detto Xinod is the way.

    Per completezza di cronaca, c'è anche il return che si usa così:

    onclick="
    if (document.layoutform.id_sel1.value=='SI') { document.layoutform.id_sel1.value='NO'; return;}
    if (document.layoutform.id_sel1.value=='NO') { document.layoutform.id_sel1.value='SI'; }
    "

    Anche all' interno di una function il JS che si trova dopo il return non viene eseguito; viene proprio saltato.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.