我在验证文本框的值是否已经在数据库中可用。在下面的代码中,它也可以正常工作,并且还显示警报消息(Notification ID Already Available)。但是如果我在警报框中单击确定,则鼠标光标将移至第二个文本框。在警报框中的确定按钮上。有什么建议么。
请在下面找到代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
function checkValid(){
var flg="Y";
$.getJSON( "dynamic_content_values1.json", function( data ){
var textVal=$("#character_validation").val();
$.each( data, function( key, val ) {
if(textVal===val.notificationID){
flg="N";return false;
}
});
if(flg==="N"){
alert("Notification ID Already Available!");
//$("#character_validation").focus('');
}
else{
alert("Notification ID Available");
}
return false;
});
}
</script>
</head>
<body>
<form method="post">
<input type="text" id="character_validation" onblur="checkValid();" maxlength="10" onkeyup="this.value = this.value.replace(/[^a-zA-Z0-9-]/g, '')">
<br>
<input type="text">
<!-- <input type="submit" name="submit" value="Submit" onclick="checkValid();">-->
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
最佳答案
您必须在警报声明后使用它,
setTimeout(function(){$("#character_validation").focus('');}, 1);
我在JAVASCRIPT中尝试过
function IsUserExist(txtcontrol) { //txtcontrol means this
if(txtcontrol.value == "2") {
alert("User Exist");
setTimeout(function() {
document.getElementById('txtUserName').focus();
}, 0);
return false;
}
}