警报框错误

时间:2015-04-01 09:37:03

标签: javascript jquery

我必须只允许字母到文本框。我已经使用" 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();

});

3 个答案:

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

只要您键入错误的字符并且仍然聚焦在文本框中,它就会触发。