2013-01-10 50 views
0

我想编写一个代码,用于比较“实时”用户在输入框中输入给定字(即“房屋”)的世界。当书写的信件是正确的时,整个单词是蓝色的,当用户引入错误的字母时,单词变成红色。实时比较您输入的字母的字母

这是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 
} 

} 

+1

你的问题是什么? –

+0

“我键入时如何才能比较实时字母和字母?” –

+0

既然您自己解决了这个问题,请考虑将其作为可接受的答案发布,以便具有相同问题的人可以直接看到它! –

回答

1

检查输入的单词是没有比给定字的长度,而且所打的词迄今已是一样的,在给定的单词对应的字母:

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

您还需要为if声明的else也改变颜色时,这个词是错误的。

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

+0

谢谢,但这使所有的文本红色,我希望文本是正确的时候蓝色。 –

+0

当用户输入文字时应该是蓝色的?当它是正确的,它应该是绿色的? –

0

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

喜欢的东西:

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

如果有任何虚假的变化串红,否则离开它的颜色是。