报警框错误

Alert box error

本文关键字:错误      更新时间:2023-09-26

我必须只允许在文本框中使用字母。我已经通过JavaScript在文本框上使用"on blur"进行了验证。即使我试图关闭,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();
});

您只需要在模态函数中添加以下代码行:

callback: function(){ $("#myTextBox").focus();}

所以改变后,它将像一样

 modal({
    type: 'warning',
    title: 'Warning',
    text: 'Only Alphabets allowed!',
    center: false,
    callback: function(){ $("#myTextBox").focus();}
     });

仅此而已。我使用您在页面中使用的Modal插件创建了fiddle。http://jsfiddle.net/7kpsv1p4/1/

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;
}

我希望这会奏效。

如果您使用onblur并同时关注文本框,则警报框将始终显示在屏幕上,因为在关注文本框后,关闭模式警报意味着您正在重新启动文本框。

所以最好使用:

  • onchange事件
  • 或者onKeyup事件

注意:使用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;
}

只要您键入了错误的字符,它就会启动,并且仍然集中在文本框中。