Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Javascript Select Checked

    Salve ragazzi volevo sapere se è possibile realizzare in javascript quanto segue:

    Ho una Select che viene popolata dinamicamente

    codice:
    <select name="N_Pratica">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    ..
    </select>
    Seleziono un valore clicco sul submit effettuo un'elaborazione, e poi ritorno nuovamente nella pagina iniziale dove è presente la select.
    Quello che vorrei, è per esempio: seleziono il valore 1 della select, clicco su submit ed al ritorno vorrei che la select mi selezionasse il valore successivo a quello precedente che nel nostro esempio è il valore 2.
    Io ho pensato di portarmi al ritorno dall'elaborazione, attraverso la querystring il valore della select elaborato; darlo in pasto ad una funzione javascript che alla fine mi seleziona (se esiste) il valore successivo nella select.

    Sperio di essere stato abbastanza chiaro...in tal caso chiedetemi pure.

    Vi ringrazio anticipatamente
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    serve la complicita' del linguaggio lato server... ti scrivo una possibile soluzione usando ASP:

    <body ... onload="document.nomeForm.N_Pratica.selectedIndex= <%=indice%>">

    Ricorda che gli indici delle option nella select partono da 0
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Originariamente inviato da br1
    serve la complicita' del linguaggio lato server... ti scrivo una possibile soluzione usando ASP:

    <body ... onload="document.nomeForm.N_Pratica.selectedIndex= <%=indice%>">

    Ricorda che gli indici delle option nella select partono da 0
    ciao
    Ciao Bruno grazie per la tempestività; Asp è proprio il linguaggio lato server che utilizzo; il problema è come faccio a sapere il valore dell'indice da selezionare?

    Io so soltanto il valore della select selezionato in precedenza ma non il suo indice.
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

  4. #4
    Allora Bruno per raggiungere lo scopo servirebbe una funzione che ritorni il valore massimo dell'indice della select ed un'altra che dal valore della select mi ritorna il relativo indice.

    Con queste due funzioni riuscirei a selezionarmi sul valore successivo a quello elaborato.
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

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

    potresti passare anche l'indice assieme al valore della option... oppure per sapere l'indice massimo
    codice:
    document.NomeForm.NomeSelect.options.length-1
    per sapere l'indice corrispondente ad un valore
    codice:
    ss = document.NomeForm.NomeSelect
    for(i=0;i<ss.options.lngth;i++)
      if(ss.options[i].value==VALORE)indice=i

  6. #6
    Originariamente inviato da willybit
    Ciao TheAikon,

    potresti passare anche l'indice assieme al valore della option... oppure per sapere l'indice massimo
    codice:
    document.NomeForm.NomeSelect.options.length-1
    per sapere l'indice corrispondente ad un valore
    codice:
    ss = document.NomeForm.NomeSelect
    for(i=0;i<ss.options.lngth;i++)
      if(ss.options[i].value==VALORE)indice=i
    Ciao willybit e grazie per la risposta...mi daresti una mano a mettere su questa funzione? Ho fatto in questo modo ma non funzione:

    codice:
    <script>
      Function GetIndice(strVal){
         ss = document.ModUps.N_Pratica;
         for(i=0;i<ss.options.lngth;i++) {
            if(ss.options[i].value==strVal ){
    	  return=i;
    	  Exit function
    	}
          }
       }
    </script>
    
    <body onload="document.ModUps.N_Pratica.selectedIndex=return GetIndice(<%=Request("N_Pratica")%>)">
    
    Grazie ancora
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    alura....

    function con la f minuscola
    length con la e
    anche se nelle option c'è un numero js le considera sempre stringhe, quindi tra apici il parametro
    poi... non ti conviene fare tutto con una sola funzione?
    codice:
    <script>
    function SelezionaDaValore(strVal){
      ss = document.ModUps.N_Pratica;
      for(i=0;i<ss.options.length;i++)
        if(ss.options[i].value==strVal)ss.selectedIndex=i
    }
    </script>
    <body onload="SelezionaDaValore('<%=Request("N_Pratica")%>')">
    <form name="ModUps">
    <select name="N_Pratica">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
    <input type="submit" value="submit">
    </form>

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Rimango del parere che una situazione simile sia meglio risolverla lato server... anche se questo non e' il forum adatto posto l'esempio per un confronto:
    codice:
    <%
    N_pratica = CInt("0"+request("N_pratica"))
    
    response.write "<select name=""N_Pratica"">" & vbCrLf
    for kk = 1 to 99 
      if kk=(N_pratica+1) then ck=""" selected>" else ck=""">"
      response.write "option value=""" & kk & ck & kk & "</option>" & vbCrLf
    next
    response.write "</select>" & vbCrLf
    %>
    inoltre questo assicura un corretto funzionamento del tasto reset del form...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Originariamente inviato da willybit
    alura....

    function con la f minuscola
    length con la e
    anche se nelle option c'è un numero js le considera sempre stringhe, quindi tra apici il parametro
    poi... non ti conviene fare tutto con una sola funzione?
    codice:
    <script>
    function SelezionaDaValore(strVal){
      ss = document.ModUps.N_Pratica;
      for(i=0;i<ss.options.length;i++)
        if(ss.options[i].value==strVal)ss.selectedIndex=i
    }
    </script>
    <body onload="SelezionaDaValore('<%=Request("N_Pratica")%>')">
    <form name="ModUps">
    <select name="N_Pratica">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
    <input type="submit" value="submit">
    </form>

    Grazie mille willybit!! Ora si che funziona.

    Ascolta restano da fare solo due finezze; la prima è che bisogna fare in modo che venga selezionato l'indice successivo a quello del valore ritornato (quindi presumo che basti scrivere

    codice:
    if(ss.options[i].value==strVal)ss.selectedIndex=i + 1
    ); la seconda che se l'indice del valore di ritorno è l'ultimo, non deve incrementare di 1 ma visualizzare l'ultimo.

    Un ultimo sforzo Willy e l'operazione è compiuta!
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    aggiorno il mio suggerimento:
    codice:
      if kk=(N_pratica+1) or kk=99 then ck=""" selected>" else ck=""">"


    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.