var=true获胜't传递给另一个函数

var = true won't pass to another function

本文关键字:另一个 函数 true 获胜 var      更新时间:2023-09-26

我的网站上有一个联系人字段,用于测试插入的值是否正确。那部分很好用。如果一个值是正确的,则会生成一个值为true的var。

我还调用了第二个函数,它测试所有联系人字段是否都为true。如果是,发送按钮将被启用,否则将保持禁用状态。遗憾的是,我的控制台中出现了一个错误,上面写着:未捕获的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;
}}

检查值是否为true的函数,如果是:disable-get's false。

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

如果存在作用域问题,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,这样就不会再声明它了(这实际上使一个新变量仅在该函数内可用)。

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

如果使用var声明messageIsGoed,则不能在函数外使用它。只需在两个函数之外声明它,并在没有var的情况下在内部使用它,这样它就会是全局的。

这是一个局部变量
它只存在于声明的函数中。

您想要创建一个全局变量,它将无处不在
在函数外部声明变量。