Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    335

    Una soluzione per un change campo input

    Ciao a tutti,
    come noto, l'evento .change di jquery rileva quale valore è stato imputato in un determinato campo input.
    Se però in questo campo non entriamo per digitare questo valore, l'evento change non viene attivato.
    Mi spiego con due righe se ho un campo :
    codice HTML:
     <input type ="text" class="test1" id="test1"> 
    codice:
    <script>
    jQuery(document).ready(function($){
    
      $(".test1").change(function(){
    
        alert("E' cambiato il valore da campo");
    
      })
    
    })
    
    </script>
    Se in questo campo ci scrivo da tastiera, viene segnalato correttamente.
    Se però in questo campo ci scrivo tramite un'altra funzione

    codice:
    dato = "nuovo valore"; 
    $(".test1").val("dato");
    Il change non rileva nessuna variazione e ovviamente l'alert non segnala nulla.
    Potete dirmi quale funzione farebbe al caso mio?

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    In jquery :

    codice:
     jQuery(document).ready(function ($) {
                $(".test1").change(function (e) {
                    alert(`test1 = ${e.target.value}`)
                })
                function cambiaTesto(testo) {
                    test1.value = testo
                    $(".test1").trigger('change')
                }
                cambiaTesto('nuovo testo')
            })
    In js vanilla:

    codice:
    window.addEventListener('DOMContentLoaded', () => {
                const test1 = document.getElementsByClassName('test1')[0]
                test1.addEventListener('change', (e) => {
                    console.log(`test1 = ${e.target.value}`)
                })
                function cambiaTesto(testo) {
                    test1.value = testo
                    test1.dispatchEvent(new Event("change"))
                }
                cambiaTesto('nuovo testo')
            })

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    335
    Quote Originariamente inviata da ninja72 Visualizza il messaggio
    In jquery :

    codice:
     jQuery(document).ready(function ($) {
                $(".test1").change(function (e) {
                    alert(`test1 = ${e.target.value}`)
                })
                function cambiaTesto(testo) {
                    test1.value = testo
                    $(".test1").trigger('change')
                }
                cambiaTesto('nuovo testo')
            })

    [/CODE]

    Grazie Ninja, provo cosi'.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.