Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 25
  1. #11
    Ti giro il video che ti può sempre dare lo scenario immediato, link qui.
    Ultima modifica di Annuitcoeptis; 04-05-2023 a 14:06

  2. #12
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Per ora non riesco, non sono al pc. Bene che già hai iniziato a dare uno sguardo alla scheda "listener di eventi", magari va verificato per i vari componenti di quel combobox. In alternativa si va avanti col metodo empirico, provando eventualmente ad applicare diversi listener e verificando con qualche log cosa avviene per i diversi componenti.

    Stasera provo qualcosa anche io. Ci aggiorniamo
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #13
    Grazie, stranamente rispetto al video di cui sopra (dove avevo già provato con i tre componenti del combobox), ora nella scheda "listener di eventi", sottoscheda "click", vedo un elemento in più, già prima di selezionare un elemento, cfr. nuovo video, cioè questo script:
    codice:
    <div class="chosen-container chosen-container-single chosen-container-single-nosearch" style="width: 84px;" title="" id="idserie_chosen"><a class="chosen-single chosen-single-with-deselect" tabindex="-1"><span>   </span><abbr class="search-choice-close"></abbr><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" readonly=""></div><ul class="chosen-results"></ul></div></div>

    ma mi sembra sia comunque lo script che già appariva nel div del post #3.
    Ultima modifica di Annuitcoeptis; 04-05-2023 a 15:52

  4. #14
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ho indagato un po' sul codice e fatto qualche ricerca.

    I campi della pagina (tra cui quel combobox) vengono creati attraverso il plugin "Chosen" jQuery.

    Sulla pagina ufficiale di riferimento ho trovato come applicare un listener per l'evento che avviene quando il valore cambia dopo una scelta:
    Observing, Updating, and Destroying Chosen

    In sostanza si può usare il metodo change() di jQuery applicato sull'elemento originale.
    In questo caso l'elemento originale è il select con id "idserie".

    Nel contesto originale quindi si potrebbe impostare in questo modo:
    codice:
    $('#idserie').change(function(e){ ... });
    Provalo pure nel tuo script, quindi dovresti avere una cosa del genere:

    codice:
    const field = document.querySelector("#DetailsOpen_Array04 > div > label:nth-child(2) > input");
    field.maxLength = "12";
    
    field.addEventListener('input', e => {
      field.value = field.value.replace(/[^\d]+/g, '');
    });
    
    $('#idserie').change(function(e){ field.focus(); });

    Tieni conto però che potrebbe non funzionare dal momento che deve essere usato necessariamente jQuery.

    Non so infatti se nel tuo script puoi usare jQuery (che è incluso comunque sulla pagina originale).

    Eventualmente bisognerà capire come intervenire.
    Fai sapere.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #15
    Non funge, né vedo cambiamenti nel Listener di eventi.
    Ho provato a seguire questa miniguida dello userscript che uso, ma il risultato non cambia anche così:
    codice:
    injectJquery().then(() => {const field = document.querySelector("#DetailsOpen_Array04 > div > label:nth-child(2) > input");
    $('#idserie').change(function(e){ field.focus(); });})

    Non possono aiutare questi script? Link 1 | Link 2

    Per esempio, ho provato questi due script, ma non vanno:

    codice:
    //Script #1
    const field = document.querySelector("#DetailsOpen_Array04 > div > label:nth-child(2) > input");
    window.onload=function() {
      document.getElemmentById('#idserie').onchange=function() {
        field.focus();
      } 
    }

    codice:
    //Script #2
    const field = document.querySelector("#DetailsOpen_Array04 > div > label:nth-child(2) > input");
    window.addEventListener("DOMContentLoaded", function() {
      document.getElemmentById("idserie").addEventListener("change", function() {
        field.focus();
      } 
    }
    Ultima modifica di Annuitcoeptis; 05-05-2023 a 10:43

  6. #16
    Se può servire giro l'immagine di tutti gli elementi della combobox, link qui.
    Ultima modifica di Annuitcoeptis; 05-05-2023 a 11:04

  7. #17
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    codice:
    document.getElemmentById('#idserie').onchange=function()
    ...
    document.getElemmentById("idserie").addEventListener("change", function()
    Ti spiego. Il normale evento change (e analogo onchange) di fatto è scaturito, per lo specifico elemento su cui si agisce, solo quando il valore viene cambiato per un'azione effettuata dell'utente (così come per diversi altri eventi, ad esempio il click);

    Nel tuo caso, questo evento, di norma non avviene perché il valore viene modificato in modo programmatico. Il select infatti è nascosto ma il suddetto plugin Chosen ne imposta il valore e in qualche modo ne "attiva" l'evento attraverso jQuery. Per cui puoi applicare tale evento giusto usando jQuery.

    Non ho idea di come funzioni quel injectJquery ma a questo punto, se quanto hai già provato non risolve, proviamo una soluzione alternativa.

    Usando il normale JavaScript possiamo certamente intercettare il click sulle voci create dal plugin.

    Prova in questo modo:
    codice:
    const field = document.querySelector('input[name="inventario"]');
    field.maxLength = "12";
    
    setTimeout(() => {
      document.querySelector('#idserie_chosen .chosen-results').addEventListener('click', e => {
        if (e.target.classList.contains('active-result')){
          setTimeout(() => {
            field.focus();
          },100);
        }
      });
    },100);
    Tieni conto che ho dovuto inserire qualche temporizzatore per sopperire all'attesa nella costruzione dei componenti e nella gestione degli eventi da parte del plugin Chosen, per quell'elemento.
    Verifica intanto se può funzionare così, altrimenti cerchiamo di aggiustare il tiro.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #18
    Beh, se i tuoi sono tentativi ti riescono sembre al primo colpo (o al più al secondo), e che colpo! Complimenti ancora una volta, grazie mille, KillerWorm, lo script funziona molto bene!
    Ultima modifica di Annuitcoeptis; 05-05-2023 a 14:09

  9. #19
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    figurati, se non era al secondo era al terzo, per me è comunque un buon pretesto per mantenere la mente in allenamento

    Buon proseguimento, alla prossima
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  10. #20
    Beh, se posso avrei un'altra ultima domanda, e sono certo che risponderesti al primo colpo. Vorrei semplicemente selezionare un valore di default da una combobox molto simile a questa, se posso ti mando lo script accodato a questo post tra stasera e domani, intanto grazie di nuovo!
    Ultima modifica di Annuitcoeptis; 05-05-2023 a 16:19

Tag per questa discussione

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.