单个字段的多个弹出窗口

时间:2015-05-11 20:07:44

标签: jquery html5 popover

我有一个字段可以根据用户类型触发一些弹出窗口:

第一个弹出窗口是当用户输入一个数字时,此时用户会获得一个弹出窗口,其中包含该字段允许非数字输入的消息

当用户输入小写字母但可以继续输入字母

时会触发第二个弹出窗口

当用户达到10个字符

时会触发第三个弹出窗口

到目前为止,我有这段代码:

JSFiddle

<input type="text" data-placement="bottom" data-trigger="manual" data-content="" name="momlastname" id="momlastname" ng-model="momlastname" />

(function () {

    function firstCapital(word) {
        return /^[A-Z]/.test(word);
    };


    function NumberOnly(e) {
        var inp = String.fromCharCode(e.which);
        if (/[0-9]/.test(inp)) return true;
        else return false;
    };

    $('#momlastname').keypress(function (f) {

        switch ($(this).val().length) {
            case 1:
                message = "Lower letter";
                break;
            case 10:
                message = "10 characters have been reached";
                break;
        }

        if (NumberOnly(f)) {
            f.preventDefault();
            $('#momlastname').popover({
                trigger: 'manual',
                content: function () {
                    return "Enter text only.  Numbers cannot be entered.";
                }
            });
            $('#momlastname').popover('show');
            $('#momlastname').addClass('error');

        } else if ($(this).val().length == 1 && !firstCapital($(this).val())) {
            $('#momlastname').popover({
                trigger: 'manual',
                content: function () {
                    return message;
                }
            });
            $('#momlastname').popover('show');
            $('#momlastname').addClass('error');
        } else if ($(this).val().length == 70) {
            $('#momlastname').popover({
                trigger: 'manual',
                content: function () {
                    return message;
                }
            });
            $('#momlastname').popover('show');
            $('#momlastname').addClass('error');
        } else {
            $('#momlastname').popover('hide');
            $('#momlastname').removeClass('error');
        }

    });

});

现在,弹出窗口没有工作,但当我评论其他人时,它似乎工作但我需要让所有3个工作。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您正在使用else if,因此只会执行第一个条件。尝试取出else并将错误清算移至支票上方。