如果长度为4,则为alert和autorefresh文本框

时间:2012-03-05 05:10:16

标签: javascript jquery html alert

我有一个text box,我正在输入text box的数据,我想要做的是:如果我将输入4 characters并将skip that text box by pressing TAB key然后一个提醒将显示为"data should be more than 4 characters",然后文本框将为auto refreshed。如果输入的数据超过4个字符,那么就不会发出警报,我正在尝试onkeyup事件,但有些我在做错了。请帮忙

3 个答案:

答案 0 :(得分:2)

我不知道你的意思是“然后文本框会自动刷新”,所以我猜你想把光标放回那个字段。至于在标签显示时检查值的长度,您需要.change().blur()事件:

$("input[type=text]").change(function() {
    if (this.value.length <= 4) {
        alert("Please enter more than 4 characters.");
        this.focus();
        return false;
    }
});

演示:http://jsfiddle.net/XHKRh/

每次焦点离开场时都会触发模糊事件;如果用户在不更改的情况下立即再次突出显示该字段,则不会再次触发更改事件。我更喜欢结合使用更改以及对表单提交的额外验证,这样用户就不会继续对警报进行纠缠(虽然实际上我根本不会显示警报,但我会将消息放在页面上到现场)。

答案 1 :(得分:1)

blur怎么样?

var el = $('#textbox').blur(function(e) {
    if (el.val().length > 4) {
        return;
    }

    el.focus();
    alert('data should be more than 4 characters');
});

请注意,此技术会导致糟糕的用户体验。显示与您的元素内联的消息将比防止用户与其他任何内容交互更好。

答案 2 :(得分:0)

有些观点可能会让您感兴趣:

  • 您不应仅仅依赖JavaScript来验证表单,因为用户可以转换它 关闭并绕过验证
  • 输入有maxlength属性
  • 您可能正在寻找onblur而不是获取TAB键操作,因为用户 可以通过其他方式改变焦点