Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: controllo su checked

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    312

    controllo su checked

    Ciao a tutti,

    all'interno di una pagina dinamica sono contenuti diversi checkbox (chiamati colore<%=i%>) i è la variabile che si incrementa ogni qual volta che è presente un nuovo checkbox.

    il checkbox assumerà quindi i valori colore1, colore2, colore3 ecc ecc

    nella mia funzione javascript devo controllare che non ne vengano selezionati più di 1 , in tal caso stampare un errore.é questo che non riesco a fare!!!!!

    vi posto la funzione che dovrebbe fare questo controllo ed una parte di codice HTML!!



    <script language="javascript">

    function closePop(num_colori) {
    var f = document.form_colori;

    var rv_colore = ""

    cont=1;

    for (var i=0;i<num_colori;i++) {

    rv_colore = eval("f.colore"+i+".checked")

    if (rv_colore == true) {
    if (cont>1) {
    alert("Attenzione, non puoi selezionare più di 2 colori!");
    return false;
    } else {


    cont++;
    }
    }

    }

    </script>

    </head>

    <form action="scheda-ordine-lenti.asp?id=23&codice_articolo=P - 1SY 17.4" method="post" name="form_colori">


    <tr>
    <td width="8%" style="border-style: none; border-width: medium" align="center" height="29">
    <input type="checkbox" value="1" name="colore1" ></td>

    <tr>
    <td width="8%" style="border-style: none; border-width: medium" align="center" height="29">
    <input type="checkbox" value="2" name="colore2" ></td>

    <tr>
    <td width="8%" style="border-style: none; border-width: medium" align="center" height="29">
    <input type="checkbox" value="3" name="colore3" ></td>


    <a target="_self" href="#_" onclick="closePop('<%=num_colori%>');">

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao carmi,

    le checkbox vanno da 1 a num_colori, nel ciclo for tu vai da 0 a num_colori-1 e poi mancava una parentesi graffa chiusa

    codice:
    function closePop(num_colori) { 
      var f = document.form_colori; 
    
      var rv_colore = "" 
    
      cont=1; 
    
      for (var i=1;i<=num_colori;i++) { 
    
        rv_colore = eval("f.colore"+i+".checked") 
    
        if (rv_colore == true) { 
          if (cont>1) { 
            alert("Attenzione, non puoi selezionare più di 2 colori!"); 
            return false; 
          } else { 
    
    
            cont++; 
          } 
        } 
    
      } 
    }
    poi eval è deprecato... al posto di
    codice:
    rv_colore = eval("f.colore"+i+".checked")
    ti consiglio la sintassi
    codice:
    rv_colore = f.elements['colore'+i].checked

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    312
    grazie willy, come faccio a memorizzare il valore del checkbox selezionato??

    function closePop(num_colori) {
    var f = document.form_colori;

    var rv_colore = ""

    cont=1;

    for (var i=1;i<=num_colori;i++) {

    rv_colore = eval("f.colore"+i+".checked")

    if (rv_colore == true) {
    if (cont>1) {
    alert("Attenzione, non puoi selezionare più di 2 colori!");
    return false;
    } else {

    checkbox_selez = f.colore[i].checked
    in questo modo non è corretto

    cont++;
    }
    }

    }
    }

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    il valore del checkbox selezionato
    codice:
    valoreSelezionato = f.elements['colore'+i].value

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    312
    facendo cosi ho questo errore sulla riga precendente:

    elements[....].checked è nullo o non è un oggetto


    function closePop(num_colori) {
    var f = document.form_colori;

    var rv_colore = ""

    cont=1;

    for (var i=1;i<=num_colori;i++) {

    rv_colore = eval("f.colore"+i+".checked")

    if (rv_colore == true) {
    if (cont>1) {
    alert("Attenzione, non puoi selezionare più di 2 colori!");
    return false;
    } else {

    valore_selezionato = f.elements['colore'+i].value

    cont++;
    }
    }

    }
    }

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Prova così
    codice:
    function closePop(num_colori) { 
      var f = document.form_colori; 
      var valore_selezionato=""
      cont=1; 
      for (var i=1;i<=num_colori;i++) { 
        if (f.elements['colore'+i].checked) { 
          if (cont>1) { 
            alert("Attenzione, non puoi selezionare più di 2 colori!"); 
            return false; 
          } else { 
            valore_selezionato = f.elements['colore'+i].value 
            cont++; 
          } 
        } 
      } 
      if(valore_selezionato!='')alert(valore_selezionato)
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    312
    mi dà sempre l'errore di prima

    elements[....].checked è nullo o non è un oggetto

    function closePop(num_colori) {
    var f = document.form_colori;
    var valore_selezionato=""
    cont=1;
    for (var i=1;i<=num_colori;i++) {
    if (f.elements['colore'+i].checked) {
    if (cont>1) {
    alert("Attenzione, non puoi selezionare più di 2 colori!");
    return false;
    } else {
    valore_selezionato = f.elements['colore'+i].value
    cont++;
    }
    }
    }
    if(valore_selezionato!='')alert(valore_s
    elezionato)
    }

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    con che browser lo stai provando? Hai qualcosa on-line da vedere? Oppure posta qui l'html generato dalla tua pagina asp

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    312
    il browser che utilizzo è explorer 6.0

    ti posto l'html generato:

    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title></title>
    <base target="_self">

    <script language="javascript">

    function closePop(num_colori) {
    var f = document.form_colori;
    var valore_selezionato=""
    cont=1;
    for (var i=1;i<=num_colori;i++) {
    if (f.elements['colore'+i].checked) {
    if (cont>1) {
    alert("Attenzione, non puoi selezionare più di 2 colori!");
    return false;
    } else {
    valore_selezionato = f.elements['colore'+i].value
    cont++;
    }
    }
    }
    if(valore_selezionato!='')alert(valore_selezionato )
    }

    </script>
    </head>


    <body bgcolor="#FFFFFF" text="#000000" link="#000000" vlink="#000000" alink="#000000">

    <form action="scheda-ordine-lenti.asp?id=11&codice_articolo=SPG AZ" method="post" name="form_colori">



    <div align="center">
    <center>
    <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#111111" width="450" id="AutoNumber1" height="39" bordercolorlight="#FF6600" bordercolordark="#FF6600">
    <tr>
    <td width="874" height="39" style="border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top: medium none #FF6600; border-bottom: medium none #FF6600" bordercolorlight="#FF6600" bordercolordark="#FF6600">
    <p align="center"><font face="Verdana" color="#0061C1" size="2">

    Seleziona il colore dell'articolo SPG AZ

    </font>
    <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="100%" id="AutoNumber2" height="150">
    <tr>
    <td width="8%" style="border-style: none; border-width: medium" align="center" height="27"></td>

    <td width="45%" style="border-style: none; border-width: medium" height="27">
    <p align="center"><font face="Verdana" size="1" color="#0061C1">
    Descrizione</font>
    </td>

    <td width="11%" style="border-style: none; border-width: medium" height="27">
    <p align="center"><font face="Verdana" size="1" color="#0061C1">
    % Assorbimento
    </font>
    </td>
    </tr>




    <tr>
    <td width="8%" style="border-style: none; border-width: medium" align="center" height="29">
    <input type="checkbox" value="6" name="colore0" ></td>




    <td width="45%" style="border-style: none; border-width: medium" align="center" height="29">
    <font face="Verdana" size="2" color="#0061C1">azzurro pavone</font></td>
    <td width="23%" style="border-style: none; border-width: medium" align="center" height="29">


    <select size="1" name="assorbimento6">
    <option value=""></option>



    <option value="10">10</option>


    <option value="10/0">10/0</option>


    <option value="15">15</option>


    <option value="15/0">15/0</option>


    <option value="20">20</option>


    <option value="20/0">20/0</option>


    <option value="25">25</option>


    <option value="25/0">25/0</option>


    <option value="30">30</option>


    <option value="30/0">30/0</option>


    <option value="40">40</option>


    <option value="40/10">40/10</option>


    <option value="5">5</option>


    <option value="50">50</option>


    <option value="50/20">50/20</option>

    </select>
    </td>

    </tr>



    <tr>
    <td width="8%" style="border-style: none; border-width: medium" align="center" height="29">
    <input type="checkbox" value="420" name="colore1" ></td>




    <td width="45%" style="border-style: none; border-width: medium" align="center" height="29">
    <font face="Verdana" size="2" color="#0061C1">azzurro pavone</font></td>
    <td width="23%" style="border-style: none; border-width: medium" align="center" height="29">


    <select size="1" name="assorbimento420">
    <option value=""></option>



    <option value="10">10</option>


    <option value="10/0">10/0</option>


    <option value="15">15</option>


    <option value="15/0">15/0</option>


    <option value="20">20</option>


    <option value="20/0">20/0</option>


    <option value="25">25</option>


    <option value="25/0">25/0</option>


    <option value="30">30</option>


    <option value="30/0">30/0</option>


    <option value="40">40</option>


    <option value="40/10">40/10</option>


    <option value="5">5</option>


    <option value="50">50</option>


    <option value="50/20">50/20</option>

    </select>
    </td>

    </tr>

    </table>
    <table border="1" cellpadding="0" cellspacing="0" style="border-width:0; border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3">
    <tr>
    <td width="100%" colspan="2" style="border-style: none; border-width: medium"></td>
    </tr>
    <tr>
    <td width="50%" style="border-style: none; border-width: medium" align="center">
    <font face="Verdana" size="2" color="#0061C1">
    <a href="javascript:chiudi()";>
    <font color="#0061C1">Torna ai
    prodotti</font></a></font>
    </td>
    <td width="50%" style="border-style: none; border-width: medium" align="center">
    <font face="Verdana" size="2" color="#0061C1">

    <a target="_self" href="#_" onclick="closePop('187');">
    <font color="#0061C1">
    Conferma i dati</font></a></font>
    </td>
    </tr>
    <tr>
    <td width="100%" colspan="2" style="border-style: none; border-width: medium"></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </center>
    </div>
    </body>
    </form>
    </html>

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ah carmi!
    ti devi decidere
    le checkbox vanno da 0 a num_colori o no???
    La pagina che hai postato ha 2 checkbox colore0 e colore1
    e tu richiami la funzione passando 187 e nella funzione fai un ciclo da 1 a 187

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.