2

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

我还调用了第二个函数,它测试是否所有联系人字段都为真。如果是这样,发送按钮将被启用,否则它将保持禁用状态。可悲的是,我在控制台中收到错误消息:Uncaught ReferenceError: nameIsGoed is not defined。希望你能帮帮我!:)

一种完全相同的树函数

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的假。

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

}
4

3 回答 3

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函数内部,因此您无需再次声明它(这实际上使新变量仅在该函数内部可用)。

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

于 2013-08-30T15:47:37.397 回答
2

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

于 2013-08-30T15:48:16.800 回答
1

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

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

于 2013-08-30T15:47:51.580 回答