在您键入时比较实时字母

时间:2013-01-10 10:05:52

标签: javascript

我想编写一个代码,用于“实时”比较用户在带有给定单词的输入框中引入的世界(即“house”)。当写的字母正确时,整个单词都是蓝色的,当用户输入错误的字母时,该单词变为红色。

这是html:

<input id='inputtype' onkeyup='return validateAsYouType(this);' />

编辑:解决了!以下是解决方案:

<script type="text/javascript" >
function validateAsYouType(inputElementId)
{
var val = inputElementId.value;
var randomWord = "house";

if (val.length <= randomWord.length && val == randomWord.substr(0, val.length)) {
document.getElementById("inputtype").style.color="blue"; // If right, put it in blue
}

else { document.getElementById("inputtype").style.color="red"; // If wrong, put it in red
}

if( val == randomWord)
{
    document.getElementById("inputtype").style.color="#339933"; // If right, put it in green
}

}

3 个答案:

答案 0 :(得分:1)

检查输入的单词是否不长于给定的单词,并且到目前为止输入的单词与给定单词中的相应字母相同:

if (val.length <= randomWord.length && val == randomWord.substr(0, val.length))

else语句还需要if来更改单词错误时的颜色。

答案 1 :(得分:0)

试试这个,

function validateAsYouType(inputElementId)
{
    var val = inputElementId.value;
    var randomWord = "house";

    var elem = document.getElementById("inputtype");

    if( val == randomWord)
    {
        elem.style.color="#339933"; // If right, put it in green
    }

    else
    {
        elem.style.color="blue"; //if wrong, put it in blue
    }

}

您的代码没有太多变化,只有显示“实时”检查的else

Test Link

答案 2 :(得分:0)

在检查整个单词是否正确的位下,根据您的单词(valrandomword)创建字符数组,然后遍历一个数组,将当前字符与相同字符进行比较来自另一个数组的编号字符。

类似的东西:

for(int i = 0; i <= val.length; i++)
{
  if (valArr[i] != randomwordArr[i])
  document.getElementById("inputtype").style.color="#990000"; 
  return;
  next i;
}

如果有任何错误,请将字符串更改为红色,否则将其保留为颜色。