变量声明问题

inp*_*put 0 jquery

我有一个表单,我想在其中使用jQuery检索文本框中的值.问题是如果我声明这样的变量:

var bdmm = $("#bdmm").val();
Run Code Online (Sandbox Code Playgroud)

在document.ready事件中,但在函数外部,并在函数中引用它,文本值为null.但是,如果我在函数内声明它,它工作正常.为什么会这样?

JQUERY:

这将工作:

$(document).ready(function() {
        var bdmm = $("#bdmm").val();
        $('#submit').click(function(e){
                alert(bdmm);
                e.preventDefault();
        }); 
    });
Run Code Online (Sandbox Code Playgroud)

这将有效:

$(document).ready(function() {
            $('#submit').click(function(e){
                alert($("#bdmm").val());
                e.preventDefault();

                              //OR
                            var bdmm = $("#bdmm").val();
                            alert(bdmm);
                e.preventDefault();

            });
        });
Run Code Online (Sandbox Code Playgroud)

Dav*_*ton 5

在第一个示例中,它在DOM就绪时立即检索文本框值.如果它已经存在一个值,它将起作用 - 但是当click事件实际发生时它不会重新查询表单.可能不是你想要的.

在第二个示例中,当click事件实际发生时,将检索表单字段值,这几乎肯定是您的意图.