[英]JQuery - .val() return old value
我有一些麻烦,我使用https://github.com/mailcheck/mailcheck
有了这个功能
$('#email').on('keypress', function(event) {
$(this).mailcheck({
suggested: function(element, suggestion) {
$('#email_check').html("Did you mean <b><i><a href='#' id='suggest_email'>" + suggestion.full + "</a></b></i>?");
$('#suggest_email').on('click', function(event) {
event.preventDefault();
$('#email').val($(this).text());
$('#email_check').empty();
$('.error_js').empty()
});
},
empty: function(element) {
$('#email_check').empty();
$('.error_js').empty()
}
});
});
但是当脚本使用时:
opts.email = this.val();
(该文件的第263行https://github.com/mailcheck/mailcheck/blob/master/src/mailcheck.js )
this.val()返回输入的旧值。 我试过用一个
this.attr("value");
和
this.prop("value");
同样的问题。
当我做一个console.log(这个); 并且在对象中寻找我输入的值,它很好,它包含了很好的价值。
那么如何获得适当的价值呢? 这就是我请求你帮助的原因。
谢谢。
不要使用keypress
事件,因为它是在input
注册新value
或character
之前触发的。 请改用密钥
$('#email').on('keyup', function(event) {
$(this).mailcheck({
suggested: function(element, suggestion) {
$('#email_check').html("Did you mean <b><i><a href='#' id='suggest_email'>" + suggestion.full + "</a></b></i>?");
$('#suggest_email').on('click', function(event) {
event.preventDefault();
$('#email').val($(this).text());
$('#email_check').empty();
$('.error_js').empty()
});
},
empty: function(element) {
$('#email_check').empty();
$('.error_js').empty()
}
});
});
控制台日志对象在首次展开对象时显示对象属性,因此在您的情况下,当按键事件触发时,该值尚未设置,但是稍后在控制台中读取时,它已设置。 要查看对象属性的实际当前状态,请仅记录该属性而不是整个对象 。
keyup事件应该可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.