簡體   English   中英

JQuery - .val()返回舊值

[英]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注冊新valuecharacter之前觸發的。 請改用密鑰

$('#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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM