我必须只允许字母到文本框。我已经使用" on blur"在文本框上通过JavaScript验证了。即使我尝试关闭,来自JavaScript的警报仍然保持打开状态。
在下面找到演示链接和JavaScript。
注意:在文本框1中键入任何非字母表,然后按Tab键或单击以下链接中的其他位置。
http://demo.acclary.com/test.aspx
我使用的JavaScript如下:
function checkalphabets(textbox) {
var pattern = /^[a-zA-Z\s]+$/;
if (!pattern.test(textbox.value)) {
modal({
type: 'warning',
title: 'Warning',
text: 'Only Alphabets allowed!',
center: false,
});
setTimeout(function () { textbox.focus(); }, 1);
exit;
return false;
}
return true;
}
$('.modal-btn').click(function() {
$('#modal-window').hide();
});
答案 0 :(得分:4)
您只需在模态函数中添加以下代码行:
callback: function(){ $("#myTextBox").focus();}
所以改变之后,就像
modal({
type: 'warning',
title: 'Warning',
text: 'Only Alphabets allowed!',
center: false,
callback: function(){ $("#myTextBox").focus();}
});
这就是全部。 我使用你在页面中使用的Modal插件创建了小提琴。 http://jsfiddle.net/7kpsv1p4/1/
答案 1 :(得分:3)
将on-blur
更改为onchange
代码中的小变化
function checkalphabets(textbox) {
var pattern = /^[a-zA-Z\s]+$/;
if (!pattern.test(textbox.value)) {
textbox.focus();
modal({
type: 'warning',
title: 'Warning',
text: 'Only Alphabets allowed!',
center: false,
});
return false;
}
return true;
}
我希望这会奏效。
答案 2 :(得分:1)
如果您使用onblur
并将注意力集中在文本框上,警告框将始终显示在屏幕上,因为在关闭文本框后您将关闭模态警报意味着您重新支持文本框。
所以最好使用:
注意:使用onkeyup是一种更安全地重新聚焦文本框的方法。 并在显示警报之前尝试关注文本框,因此当您关闭警报时,文本框将已经聚焦。
修改强>
这是一个 DEMO Fiddle ,使用onkeyup事件但是一个简单的警报,这里是代码:
function checkalphabets(textbox) {
var pattern = /^[a-zA-Z\s]+$/;
if (!pattern.test(textbox.value)) {
setTimeout(function () { textbox.focus(); }, 1);
alert('This is wrong');
exit;
return false;
}
return true;
}
只要您键入错误的字符并且仍然聚焦在文本框中,它就会触发。