var = true不会传递给另一个函数

时间:2013-08-30 15:46:15

标签: javascript function variables if-statement

我的网站上有一个联系人字段,并测试插入的值是否良好。那部分工作正常。如果值正确,则使用value = true进行var。

我也在调用第二个函数,它测试所有联系人字段是否都为true。如果是这样,则发送按钮将被启用,否则它将保持禁用状态。可悲的是,我在我的控制台中出现错误,其中说: Uncaught ReferenceError:nameIsGoed未定义。 希望你能帮助我! :)

其中一个悄然相同的树函数

function checkEmptyMessage(field) {
if (field.value != '') {
    document.getElementById("message").style.borderColor="#91bc1e";
    var messageIsGoed = true;
}
else if (field.value == ''){
    document.getElementById("message").style.borderColor="#f15a24";
    var messageIsGoed = false;
}}

检查值是否为真的函数,如果是,则:禁用get的false。

 function checkDisable(){
    if ((nameIsGoed == true) && (messageIsGoed == true) && (mailIsGoed == true)){
        document.getElementById("submit").disabled=false;
        alert("mooizo");
    }
    else{
        alert("er missen nog gegevens");
    }

}

3 个答案:

答案 0 :(得分:9)

你有一个范围问题,var messageIsGoed;应该(声明)在你的函数之外,所以你给它的值可用于其他函数。

var messageIsGoed; // outside the function

function checkEmptyMessage(field) {
if (field.value != '') {
    document.getElementById("message").style.borderColor="#91bc1e";
    messageIsGoed = true;
}
else if (field.value == ''){
    document.getElementById("message").style.borderColor="#f15a24";
    messageIsGoed = false;
}}

我在函数外部添加了(声明的)var messageIsGoed;并删除了函数内部的var,因此您不再声明它(这实际上使新变量仅在该函数内可用)。 / p>

在此处阅读有关声明变量的更多信息:MDN:var

答案 1 :(得分:2)

如果使用var声明它,则无法在函数外部使用messageIsGoed。 只需在两个函数之外声明它,并在没有var的情况下使用它,因此它将是全局的。

答案 2 :(得分:1)

这是本地变量 它只存在于声明的函数内。

你想制作一个全局变量,它将随处存在 在函数外部声明变量。

相关问题