Siv*_*ran 4 html javascript google-chrome onfocus onblur
javascript 函数用于验证在 OnBlur 事件中调用的数字。如果该值无效,它将提醒弹出窗口并将焦点返回到该字段。
示例代码:
<!DOCTYPE html>
<html>
<body>
Enter your number: <input type="text" id="fname" onfocus="this.select()" onblur="myFunction(this)">
<script>
function myFunction(field) {
if( isNaN(field.value)){
alert('wrong !!!');
field.focus();
return false;
}
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
验证在 Internet Explorer 11(版本 11.447.14393.0)/ Windows 10 中工作正常。
但是在 chrome 中单击确定或关闭警报按钮后,焦点不会返回到字段。再次弹出警报。因此,每次确定/关闭单击时,警报都会无限弹出。
镀铬版本是 63.0.3239.132
这看起来像一个chrome bug。也许您可以在crbug.com 上对其进行归档/投票。
您可以通过一些变通方法来满足您的需求。
empty value.function myFunction(field)
{
if(isNaN(field.value))
{
alert('wrong !!!');
field.value="";
field.focus();
return false;
}
}Run Code Online (Sandbox Code Playgroud)
Enter your number: <input type="text" id="fname1" onfocus="this.select()" onblur="myFunction(this)">Run Code Online (Sandbox Code Playgroud)
setTimeout.function myFunction(field)
{
if(isNaN(field.value))
{
alert('wrong !!!');
setTimeout(function(){
field.focus();
},0);
return false;
}
}Run Code Online (Sandbox Code Playgroud)
Enter your number: <input type="text" id="fname1" onfocus="this.select()" onblur="myFunction(this)">Run Code Online (Sandbox Code Playgroud)
alert完成后删除和添加 onblur 事件。function myFunction(field)
{
if(isNaN(field.value))
{
alert('wrong !!!');
var onblurevent=field.onblur;
field.onblur = "";
setTimeout(function(){
field.focus();
field.onblur=onblurevent;
},0);
return false;
}
}Run Code Online (Sandbox Code Playgroud)
Enter your number: <input type="text" id="fname1" onfocus="this.select()" onblur="myFunction(this)">Run Code Online (Sandbox Code Playgroud)