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

    Focus su controllo non funziona.

    Il seguente codice :
    codice:
    <html>
    <head>
      <script language="javascript" type="text/javascript">
      function verificaCampi(aForm) {
        for(i=1;i<=3;i++) {
          var valoreTB = document.getElementById("datariga"+i).value;
          var nameTB = document.getElementById("datariga"+i).name;
          var selezRB1 = document.getElementById("scelta100riga"+i).checked;
          var nameRB1 = document.getElementById("scelta100riga"+i).name;
          var selezRB2 = document.getElementById("scelta50riga"+i).checked;            
    
          if ((valoreTB == "") && (selezRB1) && (!selezRB2)) {
            alert("Riga "+i+": Se selezionato 100 o 50, allora bisogna selezionare anche il campo testuale"); 
            aForm.nameTB.focus();
            return false;  
          } else {
              if ((valoreTB == "") && (!selezRB1) && (selezRB2)) {
                alert("Riga "+i+": Se selezionato 100 o 50, allora bisogna selezionare anche il campo testuale");
                aForm.nameRB1[0].focus();
                return false;  
              } else {
                  if ((valoreTB != "") && (!selezRB1) && (!selezRB2)) {
                    alert("Riga "+i+": Se selezionato il campo testuale, allora bisogna selezionare anche uno tra 100 o 50");
                    aForm.nameRB1[0].focus();
                    return false;  
                  } else {
                      if ((valoreTB == "") && (!selezRB1) && (!selezRB2)) {
                        alert("Riga "+i+": Occorre valorizzare uno tra campo testuale, 100 o 50");
                        aForm.nameTB.focus();                    
                        return false;                    
                      }
                  }
              }
          }
        }
        alert("Tutto OK!!!");
      }
      </script>
    </head>
    <body>
      <form name="prova" action="" method="post" onSubmit="return verificaCampi(document.prova);">
        <input type="text" value="" name="dataInizio1" id="datariga1">
        <input type="radio" value="100" name="scelta1" id="scelta100riga1">100
        <input type="radio" value="50" name="scelta1" id="scelta50riga1">50
    
        
        <input type="text" value="" name="dataInizio2" id="datariga2">
        <input type="radio" value="100" name="scelta2" id="scelta100riga2">100
        <input type="radio" value="50" name="scelta2" id="scelta50riga2">50
    
        
        <input type="text" value="" name="dataInizio3" id="datariga3">    
        <input type="radio" value="100" name="scelta3" id="scelta100riga3">100
        <input type="radio" value="50" name="scelta3" id="scelta50riga3">50
            
        
        <input type="submit" value="conferma" name="conferma">
      </form>
    </body>
    </html>
    propone 3 righe con rispettivamente un campo testo e due radiobutton mutualmente esclusivi.
    Il mio scopo è quello di rendere obbligatoria la valorizzazione delle informazioni, per ciascuna riga.
    Il problema è che i controlli sembrano funzionare tutti correttamente, ma dopo gli alert (a seconda del controllo che scatta), non viene eseguito il focus(); ovvero il cursore non si posiziona nel campo della riga su cui è richiesta la valorizzazione.

    Cosa sbaglio, perchè ciò non avviene?

    Grazie anticipatamente.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  2. #2
    Ho risolto variando queste righe da:
    codice:
    var nameTB = document.getElementById("datariga"+i).name;
    var nameRB1 = document.getElementById("scelta100riga"+i).name;
    a:
    codice:
    var nameTB = document.getElementById("datariga"+i);
    var nameRB1 = document.getElementById("scelta100riga"+i);
    e poi dove effettua il focus ho fatto:

    codice:
    nameTB.focus();
    per le textbox, mentre per i radiobutton:
    codice:
    nameRB1.focus();
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

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.