Oninput-Ereignis mit jQuery auslösen

Lesezeit: 5 Minuten

Oninput Ereignis mit jQuery auslosen
Tiefgefroren

Ich habe ein Oninput-Ereignis in einem Textbereich, um die Höhe zu überprüfen und die Größe zu ändern. Jetzt muss ich den Wert manchmal bearbeiten. Ich mache das einfach, indem ich val() in jQuery bearbeite, aber das löst nicht das oninput-Ereignis aus. Gibt es eine Möglichkeit, das oninput-Ereignis programmgesteuert mit jQuery auszulösen?

  • Für zukünftige Besucher: ein einfaches .on('input') funktioniert.

    – Hazer

    24. Mai ’14 um 19:22 Uhr

  • @hauser du hast vollkommen recht. Hier ist ein DEMO das beweist es. getestet auf Chrome, FF & Opera (und ich vermute, dass es mit modernen IE-Versionen keine Probleme geben würde)

    – Yuwi

    23. Juni 14 um 13:10 Uhr


  • Oder verwenden Sie einfach einfaches JS: element.dispatchEvent(new Event('input')); (IE9+)

    – Nux

    27. Februar 17 um 14:12 Uhr

Oninput Ereignis mit jQuery auslosen
Paul Chris Jones

Benutzen .on('input'). Beispielsweise:

$('textarea').on('input', function() {
  text = $('textarea').val();
  $('div').html(text);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea placeholder="Type something here"></textarea>
<div></div>

  • Ich habe diese Antwort anstelle der zuvor akzeptierten akzeptiert, da dies heutzutage tatsächlich die richtige Antwort ist. Es wird jetzt unterstützt und funktioniert wie ein Zauber.

    – Tiefgefroren

    8. Oktober 18 um 10:24 Uhr

  • @paul_jones Danke Mann. Daran denke ich immer. Auf der HTML-Seite können wir verwenden

    – ThataL

    16. November 18 um 9:19 Uhr

  • Ich bin verwirrt von dieser Antwort, da es so scheint handhaben das Eingabeereignis, nicht Abzug es. @DeepFrozen, warum hast du diese Antwort akzeptiert?

    – Matthijs Kooijman

    28. Februar 20 um 11:45 Uhr


Es ist ein bisschen zu spät, aber für zukünftige Referenzen gibt es die .trigger-Methode.

$("#testArea").on("input", function(e) {
  $("#outputArea").text( $(e.target).val() )
});

$("#testArea").val("This is a test");
$("#testArea").trigger("input");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<input id="testArea" type="text" />
<div id="outputArea"></div>

Oninput Ereignis mit jQuery auslosen
karim79

Sie können es einfach aufrufen, z.

$("input")[0].oninput = function () {
   alert("hello"); 
};

$("input")[0].oninput();

…aber wie @Sammaye betont, hat jQuery keinen expliziten “oninput”-Handler, also müssen Sie POJS verwenden.

Demo auf JS Fiddle.

1642143124 278 Oninput Ereignis mit jQuery auslosen
Sammaye

oninput ist noch nicht in JQuery enthalten.

Hier können Sie Beiträge dazu sehen:

http://forum.jquery.com/topic/html5-oninput-event

http://bugs.jquery.com/ticket/9121

Im Grunde ist der allgemeine Konsens, dass sie es noch nicht wollen.

Aber nein, das direkte Ändern von val() würde die html5-Eingabe nicht auslösen, da die Spezifikation besagt, dass dies der Fall ist, wenn der Benutzer in der Benutzeroberfläche den Wert der Eingabe ändert.

Bearbeiten:

Jemand hat jedoch freundlicherweise ein Plugin für Leute erstellt, die nur HTML5-Ereignisse verwenden möchten: https://github.com/dodo/jquery-inputevent

1642143124 404 Oninput Ereignis mit jQuery auslosen
Ungalkrys

Sie können an die Eingabe und Änderung binden:

Eingang wird bei Benutzereingaben ausgelöst

Veränderung wird bei change() ausgelöst und zu val(” “) Zuweisungen, aber nach einigen Änderungen

$("#textarea").bind("input change", function() {
    alert("change happend");
});
...

nachdem du dich gebunden hast Veränderung Sie können es bei jeder val(” “)-Zuweisung manuell aufrufen:

$("#textarea").val("text").change();

oder Sie können die auszulösende Methode jQuery val(” “) überschreiben Veränderung bei jedem Aufruf von user val(” “):

(function ($) { var fnVal = $.fn.val;
    $.fn.val = function(value) {
        if (typeof value == 'undefined') {
            return fnVal.call(this);
        }
        var result = fnVal.call(this, value);
        $.fn.change.call(this); // calls change()
        return result;
    };
})(jQuery);

1642143124 972 Oninput Ereignis mit jQuery auslosen
Nikolaus Kolmann

Versuchen Sie es mit “Tastendruck” oder “Tastendruck”.

Beispiel 1:

$("#textarea").keypress(function(){
    alert($("#textarea").val());
});

Beispiel 2:

$("#textarea").keydown(function(){
    alert($("#textarea").val());
});

1642098665 92 Javascript VariablenreferenzAlias
Konstantin

Drücken Sie CODE SNIPPET AUSFÜHREN, um die Ergebnisse anzuzeigen

Ich habe nach einem besseren Beispiel gesucht, um einen Eingabebereich mit einem Eingabewert zu verbinden und so
Ich habe Fernandos Beispiel in einem JQuery-Plugin modifiziert , also : für alle
<input type="range" min="1" max="100" value="50" id="range1">

Sie werden seinen Wert haben:
<input type="text" disabled id="value" class="range1" value="0">

so ist es wie bei jedem übergeordneten Bereich id=”range1″ es gibt ein untergeordnetes id=”value” Klasse = “Bereich1”

<!-- <script src="https://stackoverflow.com/questions/11189136/js/jquery.js"></script> -->
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>


1<input type="range" min="1" max="100" value="50" id="range1"><input type="text" disabled id="value" class="range1" value="0"><br>
2<input type="range" min="1" max="100" value="50" id="range2"><input type="text" disabled id="value" class="range2" value="0"><br>
3<input type="range" min="1" max="100" value="50" id="range3"><input type="text" disabled id="value" class="range3" value="0"><br>
4<input type="range" min="1" max="100" value="50" id="range4"><input type="text" disabled id="value" class="range4" value="0"><br>
...<br>
n<input type="range" min="1" max="100" value="50" id="rangen"><input type="text" disabled id="value" class="rangen" value="0"><br>


<script type="text/javascript">
<!--
$(document).ready(function() {
  $('input').on("input",function(){
    $('input').each(function(index) {
      //console.log('1 '+index + ': ' + $(this).text()+',id='+$(this).attr('id'));
      if($(this).attr('id')=='value'){
        //console.log('2 class="+$(this).attr("class'));
        var obj=$('input#'+$(this).attr('class') );
        var hisvalue=$(this);
        //console.log('3 parent`s value="+obj.val() );
        obj.on("input",function(){
          hisvalue.val(obj.val());
        });
      }
    });
  });
  $("input').trigger("input");
});
//-->
</script>

.

496350cookie-checkOninput-Ereignis mit jQuery auslösen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy