Potrzebuję przechwycić zdarzenie keyup, aby zapewnić poprawność na żywo, gdy użytkownik wpisuje dane wejściowe (zmiana zdarzenia jest wywoływana tylko wtedy, gdy dane wejściowe tracą ostrość).JavaScript: Jak uzyskać wartość elementu wejściowego nadawcy ze zdarzenia kluczowania?
Mam problem z uzyskaniem edytowanej wartości danych wejściowych, które wywołały polecenie evnt.
Kod działa również na czasomierzu, aby zapobiec wielu połączeniom, gdy użytkownik wpisuje (uruchamia tylko co 500 ms).
mam kilka wejść z klasą „priceinput” i dołączyć do keyUp wydarzenie każdy tak:
<script language="javascript" type="text/javascript">
var timer;
$(document).ready(function()
{
$(".priceinput").each(function()
{
$(this).keyup(function(e)
{
clearTimeout(timer);
timer = setTimeout(function()
{
//how to get the value of the input element that was changed?
var value = ???;
$.getJSON('/Validator/IsValidInput', { input: value },
function(response)
{
//indicate if input is correct
});
}, 500);
});
});
});
</script>
Aby uzyskać wartość wejściową nadawca, próbowałem $(this).val
, this.val()
, e.target.val()
ale nikt wydaje się praca.
Jak uzyskać wartość sygnału wejściowego nadawcy?
+1 Jest to bardzo powszechne wzór w kontaktach z czasów oczekiwania i wywołania zwrotne. Zauważ, że jak pokazuje spiczasty, .each() nie jest wymagany, jquery obsługuje go wewnętrznie. –
Tylko uwaga dla osób zastanawiających się nad znakiem $ ** ** input **: jest częścią nazwy zmiennej iw tym przypadku jest używana do wskazania, że zmienna jest obiektem jQuery. Aby uzyskać szczegółowe informacje, patrz [tutaj] (http://stackoverflow.com/questions/205853/why-would-a-javascript-variable-start-with-a-dollar-sign). – rob74