Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581

    [JQuery] Calcolare numero di select

    ho una serie di select, tutte con lo stesso nome, ad esempio sel[], che mi servono per ordinare determinati record

    E' possibile in jquery ottenere il numero di select presenti?
    in particolare dovrei verificare che per ogni select sia selezionato un valore diverso dagli altri, in maniera tale che ad ogni record sia assegnato uno specifico ordine

    penso si faccia qualcosa con each, ma non ne esco

  2. #2
    ciao!

    se setti l'attributo class con lo stesso valore per tutte le tue select per ricavare tramite jquery quante ne hai puoi fare cosi:

    codice:
     var array = $('.nomeclasse);
    e poi puoi scorrere la variabile array come un normale array appunto dove ogni riga contiene un oggetto select che puoi interrogare.

    il codice html dovrebbe essere cosi:

    codice:
         <select id="sel1" class="nomeclasse" >
           <option label="Uno" value="1"></option>
           <option label="Due" value="2"></option>
           <option label="Tre" value="3"></option>
         </select>
         
    
         <select id="sel2" class="nomeclasse" >
           <option label="Quattro" value="4"></option>
           <option label="Cinque" value="5"></option>
           <option label="Sei" value="6"></option>
         </select>
          ....
          
    
         <select id="seln" class="nomeclasse" >
           <option label="EnnesimoValore" value="4"></option>
           <option label="EnnesimoValore" value="5"></option>
           <option label="EnnesimoValore" value="6"></option>
         </select>

  3. #3
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    le mie select non hanno associata una classe

    in particolare, in ogni select ho una serie numerica che va da 1 a n che rappresenta un ordine

    io dovrei verificare che per ogni select sia stato selezionato un valore di ordine diverso dagli altri, facendo così in modo di non avere due select con lo stesso ordine impostato

    si riescea modificare per fare questo controllo?

    grazie mille

  4. #4
    ho scritto questo piccolo script l'ho provato e funziona..spero di aver capito bene cosi ti serve, provalo e fammi sapere ^^

    codice:
                    function controllaSelect() {
                        var array = document.getElementsByTagName("select");
                        var i = 0;
                        var j = 0;
                        var valoreUguale = false;
    
                        //Primo ciclo per scorrere l'array
                        while (i < array.length) {
                            //Secondo ciclo:confronto ogni elemento contenuto nell'array con tutti gli altri
                            while (j < array.length) {
                                //Se trovo un valore uguale (array[i].value == array[j].value) 
                                //in due select diverse (i != j) allora interrompo il ciclo
                                //altrimenti continuo a cercare se ci sono valori uguali.
                                if (array[i].value == array[j].value && i != j) {
                                    valoreUguale = true;
                                    break;
                                }
                                j = j + 1;
                            }
    
                            if (valoreUguale)
                                break;
    
                            j = 0;
                            i = i + 1;
                        }
    
                        if (valoreUguale)
                            alert("Alcuni valori sono uguali!");
                        else
                            alert("I valori sono tutti diversi!");
                        
                    }
    ps: lo script presuppone che nella pagina ci siano solo le select che hanno i valori per l'ordinamento e non altre...se ce ne sono anche altre dimmelo che apporto qualche modifica

  5. #5
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    eccomi, un po' in ritardo

    il tuo controllo è ok, ne avevo fatto uno simile ma pensavo si riuscisse a fare qualcosa in jquery senza troppo js

    La mia domanda ora è questa, tornando alla classe unica per più elementi

    Ne ho associata una chiamata input300loc a più campi text che devo verificare:
    - non siano vuoti
    - non siano uguali tra di loro

    codice:
    var localita = $('.input300loc');
    localita_vuote = 0;
    localita_uguali = 0;
    $.each(localita, function(index, value) { 
      alert(index + ': ' + value); 
    });
    il problema è come non mi da value ma solo un "[objectHTMLInputElement] ....
    come posso recuperare l'eventuale valore inserito in quel campo?

  6. #6
    località è un array di oggetti quindi in questo caso il parametro value è un oggetto e non direttamente un valore.
    Per accedere al valore che ti serve basta che fai value.value (ti consiglierei di rinominare il parametro e chiamarlo object o textbox altrimenti ci si può confondere

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.