我想编写一个代码,用于“实时”比较用户在带有给定单词的输入框中引入的世界(即“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
}
}
答案 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
答案 2 :(得分:0)
在检查整个单词是否正确的位下,根据您的单词(val
和randomword
)创建字符数组,然后遍历一个数组,将当前字符与相同字符进行比较来自另一个数组的编号字符。
类似的东西:
for(int i = 0; i <= val.length; i++)
{
if (valArr[i] != randomwordArr[i])
document.getElementById("inputtype").style.color="#990000";
return;
next i;
}
如果有任何错误,请将字符串更改为红色,否则将其保留为颜色。