Tôi cần nắm bắt sự kiện khóa để cung cấp xác thực trực tiếp khi người dùng nhập vào một đầu vào (sự kiện thay đổi chỉ kích hoạt khi đầu vào mất tiêu điểm).JavaScript: Cách nhận giá trị của phần tử đầu vào người gửi từ sự kiện khóa?
Tôi gặp sự cố khi nhận giá trị đã chỉnh sửa của dữ liệu nhập đã kích hoạt phần mềm bị xóa.
Mã cũng chạy trên bộ hẹn giờ để ngăn nhiều cuộc gọi khi người dùng nhập (chỉ kích hoạt mỗi 500 ms).
Tôi có một số nguyên liệu đầu vào với lớp "priceinput" và đính kèm để KeyUp sự kiện của mỗi giống như sau:
<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>
Để có được giá trị người gửi đầu vào, tôi đã cố gắng $(this).val
, this.val()
, e.target.val()
nhưng không ai có vẻ công việc.
Làm cách nào để nhận được giá trị của đầu vào người gửi?
1 Đây là một mô hình rất phổ biến khi giao dịch với timeouts và callbacks. Cũng lưu ý rằng như các chương trình nhọn, các .each() là không cần thiết, jquery xử lý nó trong nội bộ. –
Chỉ cần một lưu ý cho những người tự hỏi về $ đăng nhập ** $ đầu vào **: nó là một phần của tên của biến và trong trường hợp này nó được sử dụng để chỉ ra rằng biến là một đối tượng jQuery. Xem [tại đây] (http://stackoverflow.com/questions/205853/why-would-a-javascript-variable-start-with-a-dollar-sign) để biết chi tiết. – rob74