2016-12-11 5 views
-2

Wie kann ich überprüfen, ob eine Eingabe einen Wert mit jQuery hat?jQuery live überprüfen, ob der Eingang einen Wert hat

if ($("#reference").filter(function() { return $(this).val(); }).length > 0) { 
    //.. 
} 

Das nur Kontrollen an Seite zu laden, wie kann ich überprüfen, wenn der Benutzer den Wert in #reference ändert oder verlässt es überhaupt leer?

+1

erklären, was "live check" bedeutet. – Hitmands

+0

Was meinst du mit Echtzeit? – Ionut

+2

Bindet relevantes Ereignis, zB: $ ("# reference"). On ('input', function() {if (this.value) {...}}; '. Aber es klingt einfach so, als könnten Sie 'required' Attribut und CSS Pseudoklasse': valid' verwenden, abhängig von Ihrem Anwendungsfall. –

Antwort

0

Eingabefelder change Veranstaltung haben, können Sie es hören:

jQuery(document).ready(function($) { 
 
    var $field = $("#reference"); 
 
    
 
    
 
    $field.on('change', function() { 
 
    var value = $field.val(); 
 
    
 
    console.log('do your validation with ', value); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="reference" />

Nur eine Anmerkung

jQuery(..).filter sollte die jQuery gesetzt wrapped zu reduzieren verwendet werden, aber , id s sollen ein einzigartiges dom-Element anzeigen, daher ist ein Filter völlig überflüssig.

  1. $('#reference').val();
-1
$("#target").keyup(function() { 
    alert("user is typing"); 
    }); 

Alarm wird angezeigt, wenn Benutzer something.In diese Art und Weise ist die Eingabe können Sie lebendigen Prüfwert vom Benutzer eingegeben.

$("#target").keyup(function() { 
    if($(this).val()=="something") 
    { 
     #your code go here 
    } 

    }); 
+1

keyup funktioniert nicht mit eingefügtem Text ... – Hitmands

+0

https://api.jquery.com/keyup/ Sie können diesen Link als Referenz verwenden. –

+0

@ArunSivan Wenn der Benutzer den Wert mit der Maus einfügt, wird das keyup-Ereignis nicht ausgelöst. Benutze statt 'input' event –

1

Gerade jQuery verwenden .on() Methode, so dass Sie Ereignisse auf die Objekte verarbeiten kann, die dynamisch hinzugefügt werden (wenn in Live geladen) wie folgt aus:

  • Sie .on('change') Ereignis im Fall nutzen sollte select Felder.
  • Sie sollten .on('input') Ereignis bei input Felder verwenden.

$(function(){ 
 

 
    
 
    $('body').on('change', "#mySelect", function() { 
 
     var value = $(this).val(); 
 

 
     console.log('Selected Value: ', value); 
 
    }); 
 
    
 
    $('body').on('input', "#myInput", function() { 
 
     if($(this).val().length) { 
 
     var hasVal = true; 
 
     } else { 
 
     var hasVal = false; 
 
     } 
 
     console.log('Input has value (true/false): ', hasVal + " (" + $(this).val() + ")"); 
 
    }); 
 
    
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <select id="mySelect"> 
 
    <option value="a">Select A</option> 
 
    <option value="b">Select B</option> 
 
    <option value="c">Select C</option> 
 
    <option value="d">Select D</option> 
 
    </select> 
 
    
 
    <input type="text" id="myInput"> 
 
</div>

hoffe, das hilft!

+0

Warum benutzt du' event delegation' hier? – Hitmands

+0

Wenn ein Element dynamisch in den Dokumentkörper eingefügt wird, hilft es jQuery, dieses Element nach dem Hinzufügen dieses Elements zu finden! Ereignisdelegierung ermöglicht es uns, einen einzelnen Ereignis-Listener an ein Elternelement anzuhängen, das für alle mit einem Selektor übereinstimmenden Nachkommen ausgelöst wird, unabhängig davon, ob diese Nachkommen jetzt existieren oder in der Zukunft hinzugefügt werden. –

+0

Und wo ist die Beziehung mit der aktuellen Frage? – Hitmands

Verwandte Themen