简体   繁体   English

验证Javascript中的空格

[英]Validate blank spaces in Javascript

I have some blank spaces in a paragraph that requires the correct word to be entered when written into it. 我在段落中有一些空格,要求在写入时输入正确的单词。 I have a function checking if the words are correct and another that will change the font of the incorrect word entered to be red. 我有一个函数检查单词是否正确,另一个函数将更改输入为红色的不正确单词的字体。

Does anyone know where I went wrong in this code? 有人知道我在此代码中出了错吗? The isCorrect() function works when I am not calling the font() function, but I don't know what would be wrong with the font() function. 当我不调用font()函数时,isCorrect()函数可以工作,但是我不知道font()函数会出什么问题。

Thanks 谢谢

function isCorrect(){
    var word1 = document.getElementById("word1").innerHTML;
    var word2 = document.getElementById("word2").innerHTML;
    var word3 = document.getElementById("word3").innerHTML;
    var word4 = document.getElementById("word4").innerHTML;
    var word5 = document.getElementById("word5").innerHTML;
    var word6 = document.getElementById("word6").innerHTML;
    var word7 = document.getElementById("word7").innerHTML;

    font(word1, word2, word3, word4, word5, word6, word7);


    if (word1 == "digg" && word2 == "face" && word3 == "book" && word4 == "tumbled" && word5 == "linked" && word6 == "interest" && word7 == "follow")
    {
        alert("Correct");
    }
    else
    {
        alert("Not Correct");
    }
}

//if wrong word is entered, it should turn red
function font(word1, word2, word3, word4, word5, word6, word7)
{
    if (word1 != "digg")
    {
        word1.style.color = "red";
    }

    else
    {
        word1.style.color = "white";
    }

    if (word2 != "face")
    {
        word2.style.color = "red";
    }
    else
    {
        word2.style.color = "white";
    }

    if (word3 != "book")
    {
        word3.style.color = "red";
    }
    else
    {
        word3.style.color = "white";
    }


    if (word4 != "tumbled")
    {
        word4.style.color = "red";
    }
    else
    {
        word4.style.color = "white";
    }

    if (word5 != "linked")
    {
        word5.style.color = "red";
    }
    else
    {
        word5.style.color = "white";
    }

    if (word6 != "interest")
    {
        word6.style.color = "red";
    }
    else
    {
        word6.style.color = "white";
    }

    if (word7 != "follow")
    {
        word7.style.color = "red";
    }
    else
    {
        word7.style.color = "white";
    }

}

The problem is you are passing wrong object in the font function. 问题是您在字体函数中传递了错误的对象。 Remove the innerHtml from the assignment. 从分配中删除innerHtml。

var word1 = document.getElementById("word1").innerHTML;

instead pass this object inside the font function 而是在font函数内部传递此对象

var word1 = document.getElementById("word1");

Because document.getElementById("word1").style is an object not document.getElementById("word1").innerhtml.style 因为document.getElementById("word1").style是一个对象,而不是document.getElementById("word1").innerhtml.style

But here you need innerhtml object 但是这里您需要innerhtml对象

if (word1 == "digg" && word2 == "face" && word3 == "book" && word4 == "tumbled" && word5 == "linked" && word6 == "interest" && word7 == "follow")
{
    alert("Correct");
}
else
{
    alert("Not Correct");
}

In your font function you are sending innerHMTL value, so you cant change style for that innerHMTL . font function您正在发送innerHMTL值,因此您无法更改该innerHMTL style

Instead send document.getElementById("word1") 而是发送document.getElementById("word1")

function isCorrect(){
    var word1 = document.getElementById("word1");
    var word2 = document.getElementById("word2");
    var word3 = document.getElementById("word3");
    var word4 = document.getElementById("word4");
    var word5 = document.getElementById("word5");
    var word6 = document.getElementById("word6");
    var word7 = document.getElementById("word7");

    font(word1, word2, word3, word4, word5, word6, word7);


    if (word1.innerHTML == "digg" && word2.innerHTML == "face" && word3.innerHTML == "book" && word4.innerHTML == "tumbled" && word5.innerHTML == "linked" && word6.innerHTML == "interest" && word7.innerHTML == "follow")
    {
        alert("Correct");
    }
    else
    {
        alert("Not Correct");
    }
}

//if wrong word is entered, it should turn red
function font(word1, word2, word3, word4, word5, word6, word7)
{
    if (word1.innerHTML != "digg")
    {
        word1.style.color = "red";
    }

    else
    {
        word1.style.color = "white";
    }

    if (word2.innerHTML != "face")
    {
        word2.style.color = "red";
    }
    else
    {
        word2.style.color = "white";
    }

    if (word3.innerHTML != "book")
    {
        word3.style.color = "red";
    }
    else
    {
        word3.style.color = "white";
    }


    if (word4.innerHTML != "tumbled")
    {
        word4.style.color = "red";
    }
    else
    {
        word4.style.color = "white";
    }

    if (word5.innerHTML != "linked")
    {
        word5.style.color = "red";
    }
    else
    {
        word5.style.color = "white";
    }

    if (word6.innerHTML != "interest")
    {
        word6.style.color = "red";
    }
    else
    {
        word6.style.color = "white";
    }

    if (word7.innerHTML != "follow")
    {
        word7.style.color = "red";
    }
    else
    {
        word7.style.color = "white";
    }

}
  • I sent complete DOM elements into font function. 我将完整的DOM元素发送到了font函数中。
  • Then inside that I compared the word1.innerHTML 然后在其中我比较了word1.innerHTML

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM