2015-05-11 2 views
0

У меня есть поле, которое выстреливает пару Popovers в зависимости как типы пользователей:несколько Popovers для одного поля

Первый поповер когда пользователь вводит номер, в это время пользователь получает поповер с сообщением что поле позволяет входы не относящиеся Номер страницы

Второй поповер вызывается, когда пользователь вводит строчной буквы, но может продолжать вводить буквы

И третий поповер вызывается, когда пользователь достигает 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'); 
     } 

    }); 

}); 

Прямо сейчас, Popovers не работает, но когда я закомментируйте другие, кажется, работает, но мне нужно, чтобы все 3 работая. Что я делаю не так?

ответ

0

Вы используете else if, поэтому будет выполнено только первое условие. Попробуйте вынуть else и переместите исправление ошибок над вашими чеками.

+0

Хорошее предложение, но все еще не работает –

Смежные вопросы