验证数字javascript在Chrome中不起作用
我使用下面的脚本来验证它在IE中工作的数字,但在较新版本的Chrome中不起作用。如果输入大于5,则显示警报窗口,但无法关闭,我必须关闭所有Chrome窗口。如何修复验证数字javascript在Chrome中不起作用,javascript,google-chrome,Javascript,Google Chrome,我使用下面的脚本来验证它在IE中工作的数字,但在较新版本的Chrome中不起作用。如果输入大于5,则显示警报窗口,但无法关闭,我必须关闭所有Chrome窗口。如何修复 <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <script> function validate(textarea) { var wan
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<script>
function validate(textarea)
{
var wanted = "12345"
var check ;
var x ;
for (var i=0; i<textarea.value.length; i++)
{
x = "" +textarea.value.substring(i, i+1);
if (wanted.indexOf(x) == "-1") check = "stop";
}
if ( check== "stop")
{
alert("use only numbers from 1 to 5 ");
textarea.focus();
textarea.select();
}
if (textarea.value.length > 1 )
{
alert("use only numbers from 1 to 5 ");
textarea.focus();
return (false);
}
}
</script>
</HEAD>
<BODY>
<FORM name="game" >
<table align="center" border="0" width="225" bgcolor="#FFFFF0" >
<TR><TD colspan="9">Fill the cells with digits 1-5, only one time each. </TD></TR>
<TR><TD><INPUT name="a1" size="1" value="" onBlur="validate(this)"><TD> <B> </B></TD>
<TD><INPUT name="a2" size="1" onBlur="validate(this)"></TD>
<TD><B> </B></TD>
<TD><INPUT name="a3" size="1" value="" onBlur="validate(this)">
</TD><TD><B> </B></TD>
<TD><INPUT name="a4" size="1" onBlur="validate(this)"></TD>
<TD><B> </B></TD>
<TD><INPUT name="a5" size="1" onBlur="validate(this)"></TD>
</TR>
</FORM>
</TABLE>
</BODY>
由于双焦点,您的脚本基本上处于无休止的循环中,此外,Chrome在警报和焦点方面存在困难: 当检测到一个不是1到5的数字时,stop if事件将焦点转移到输入。但是,第二个if子句也关注元素,这会触发模糊事件,重新启动验证函数 下面是一个有效的例子。我已经用正则表达式更新了你的验证代码。它通过执行负搜索来检查textarea中的值是否匹配1-5。因此,如果任何值与1-5不匹配,则设置检查停止 在那之后,我给focus和select添加了一个超时,它在警报触发5毫秒后触发,导致Chrome不会进入模糊焦点循环 此外,我还向输入添加了maxlength属性,该属性将输入限制为仅一个字符 函数validateextarea{ var=12345 var检查; var x; 如果textarea.value.match/[^1-5]/g{ 检查=停止; } 如果textarea.value.length>1 | |检查==停止{ 警报仅使用1到5之间的一个数字; setTimeoutfunction{ textparea.focus; textarea.select; }, 5; 返回false; } } 用数字1-5填充单元格,每个单元格仅填充一次。