Sự kiện thay đổi được kích hoạt sau sự kiện blur
trên đầu vào, nói cách khác khi đầu vào mất tiêu điểm. Tài liệu MDN mô tả điều này:
Khi yếu tố mất tiêu điểm sau khi thay đổi giá trị, nhưng không được cam kết (ví dụ: sau khi chỉnh sửa giá trị hoặc).
Kể từ khi input
là loại ẩn sẽ không bao giờ có bất kỳ tương tác người dùng với input
có nghĩa là nó sẽ không thay đổi trừ khi kịch bản phía khách hàng được cung cấp bởi trang web của bạn thay đổi nó, mà sẽ không kích hoạt sự kiện thay đổi.
Dưới đây là hai lựa chọn:
Gọi thay đổi() một cách rõ ràng
Bất cứ khi nào bạn thay đổi giá trị của ẩn cuộc gọi đầu vào .change()
để kích hoạt sự kiện này.
$(document).ready(function(){
var $hello= $('[id$=myValue]');
$hello.on("change", function(){
alert('hey');
});
$hello.val("Something");
$hello.change();
});
Chỉ cần gọi mã mà không xử lý
Thay vì sử dụng bộ xử lý sự kiện chỉ thực thi mã bạn sẽ có trong nguồn.
$(document).ready(function(){
var $hello= $('[id$=myValue]');
$hello.val("Something");
alert('hey');
});
Một điều nữa tôi muốn đề cập là bộ chọn có thể được sắp xếp tốt hơn một chút.
var $hello= $('input[id$=myValue]');
Và nếu bạn sử dụng một phiên bản mới của jQuery thích on
thay vì bind
như trong ví dụ trên.
Nguồn
2013-07-17 09:03:17
Làm thế nào để bạn thay đổi giá trị đầu vào? Sử dụng val() theo chương trình? –
Bạn đang sử dụng phiên bản jquery nào? –
Tôi đang sử dụng JQuery 1.8.3. Đó là một ứng dụng Java JSF vì vậy nó có lập trình. –