未定义输入值作为变量

时间:2015-06-04 00:39:57

标签: javascript jquery html

获得输入类型文字。无论输入什么,都应该成为变量的值,并从那里开始。然而,我得到错误" Uncaught ReferenceError:emailvar未定义"并且整个脚本从那里开始。

HTML

<input type="text" class="signfield emfield" />
<div class="submt sbmtfrm" href="#" style="cursor:pointer;">Step 2</div>

和js

$(".sbmtfrm").click(function(){
   var emailvar = $(".emfield").val();
});

2 个答案:

答案 0 :(得分:2)

您需要将emailvar声明为全局变量,以便在该click事件处理程序之外使用它:

$(function()
{
    var emailvar;
    $(".sbmtfrm").click(function()
    {
       emailvar = $(".emfield").val();
    });
    function foo()
    {
        console.log(emailvar);
    }
}

答案 1 :(得分:2)

在您的代码中,emailvar正在函数closure中定义,只有该函数才能访问它。

$(".sbmtfrm").click(function(){
   var emailvar = $(".emfield").val();
});

如果要在jQuery事件处理程序之外使用emailvar,则需要首先在函数范围之外定义它(而不是赋值)。

(function(window, $) { // closure
    var emailvar;

    $(".sbmtfrm").click(function() {
        emailvar = $(".emfield").val();
    });

    // you now have access to `emailvar` in any function in this closure

}(window, jQuery));