JavaScript: Wie man den Wert der Absender-input-element vom keyup-Ereignis?
Mich bannen zu müssen das keyup-Ereignis ein, um live-Validierung, wenn der Benutzer ist die Eingabe in einen Eingang (change-Ereignis feuert nur, wenn die Eingabe den Fokus verliert).
Ich habe Probleme damit, die bearbeiteten Wert der Eingabe, feuerte die evnt.
Der code läuft auch auf timer, um zu verhindern, dass mehrere Anrufe, wenn der Benutzer die Eingabe (feuert nur alle 500 ms).
Habe ich mehrere inputs mit der Klasse "priceinput" und Heften sich an keyup-Ereignis der einzelnen wie folgt:
<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>
Bekommen die Absender Eingabe mit dem Wert, ich habe versucht $(this).val
, this.val()
, e.target.val()
aber keiner scheint zu funktionieren.
Wie bekomme ich den Wert der Absender-Eingang?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass in deinem timeout-Funktion, die Sie verloren haben, das "this" - Referenz auf das input-element. Probieren Sie etwas wie dieses:
Im Internet Explorer sollte es
event.srcElement
im Firefoxevent.target
.Oder probieren Sie
event.toElement
undevent.relatedTarget
.(und natürlich auch kombinieren Sie mit
.value
oder.val()
)