我有麻烦,我用
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();

(此文件https://github.com/mailcheck/mailcheck/blob/master/src/mailcheck.js的第263行)

this.val()返回输入的旧值。
我试图用一个
this.attr("value");


this.prop("value");

同样的问题。

当我做一个console.log(this);并在对象中寻找我输入的值,这很好,它包含了好的值(value)。

那么如何获得适当的值(value)呢?
这就是为什么我要求您的帮助。

谢谢。

最佳答案

不要使用keypress事件,因为它是在将新的valuecharacter注册到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()
                    }
                });
            });

09-25 18:27