javascript - JQuery - .val() 返回旧值

标签 javascript jquery

我遇到了一些麻烦,我用 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(this);并在对象中寻找我输入的值,它很好,它包含好的值。

那如何得到合适的值呢? 这就是我请求您帮助的原因。

谢谢。

最佳答案

不要使用 keypress事件,因为它在新的 value 之前被触发或 character注册于 input .使用 keyup相反

$('#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()
                    }
                });
            });

关于javascript - JQuery - .val() 返回旧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30706808/

相关文章:

javascript - 将函数分配给javascript中的全局变量

javascript - HTML 保护密码字段

Javascript动态IF正则表达式条件没有eval?

jquery - 居中幻灯片图像

Javascript 和 CSS 动画没有将我的结果放在正确的位置

javascript - 自动提示最合适的数据结构是什么?

javascript - 翻译 API 仅转换文本部分(而不是 HTML)

jquery - 通过点击遍历 HTML 片段以获取 Span 的内容

javascript - 如何自动关闭 Bootstrap 4 下拉菜单中的子菜单

c# - 在没有边框的 native 浏览器中调整 html 滚动条的大小