我有一个场景,我想检查一些regex
并在正则表达式失败时触发alert
消息。
所发生的情况是,在点击“确定”后触发警报时,它会再次触发相同的警报。
以下是代码: -
function validateSAPID() {
var regex = /^[a-zA-Z0-9-]+$/m;
var strSAP = document.getElementById('txtSearchSAP').value;
if (strSAP.match(regex)) {
return true;
}
else {
alert("Please enter proper SAP ID");
$('#txtSearchSAP').focus();
$('#txtSearchSAP').val('');
return false;
}
}
和textbox
HTML如下: -
<input type="text" id="txtSearchSAP" onkeyup='FilterGrid(this);' onblur="validateSAPID();" class="field-style field-full align-none" maxlength="18" />
答案 0 :(得分:0)
尝试调用validateSAPID();在FilterGrid里面(这个); onkeyup事件
答案 1 :(得分:0)
(我知道我的语法不好,所以可以自由编辑)
我做了一些测试,似乎$("#txtSearchSAP").focus();
先发生然后被触发alert("Please enter proper SAP ID");
导致失去焦点并再次运行该功能。
我不确定这是否是最有效的方法,但这是我得到的解决方案:
<body >
<input type="text" id="txtSearchSAP" class="field-style field-full align-none" maxlength="18" />
</body>
<script>
$(document).ready(function(){
$("#txtSearchSAP").focusout(function(){
var regex = /^[a-zA-Z0-9-]+$/m;
var strSAP = $("#txtSearchSAP").val();
if (strSAP.match(regex) == null) {
alert("Please enter proper SAP ID");
}
setTimeout(function(){
$("#txtSearchSAP").val("");
$("#txtSearchSAP").focus();
}, 1);
});
});
</script>