2013-03-07 4 views
0

Я столкнулся с серьезной дилеммой здесь, я использовал самозагрузки всплывающей подсказки на входные тегах для проверки формы, т.е. подсказки автоматически появляется вокруг входного тега, когда есть ошибки проверки формы, проблемаBootstrap подсказка ручной триггер не работает

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

$("input#formName").each(function() { 
    $("#formName").on("blur",this, function(){ 
     var x=document.getElementById("formName").value; 
     // 
     if (x==null || x=="") 
     { 
      var error = "Name Must Not Be Empty"; 
      $('#formName').tooltip({ 
      trigger: 'manual', 
      title: error 
      }).on({ 
       blur: function() { 
        $(this).tooltip('show'); 
       }, 
       focus: function() { 
        $(this).tooltip('hide'); 
       } 
      }); 
     }else{ 
      $('#formName').data('tooltip',false); 
     } 

    }); 

     $("#formName").on("blur",this, function(){ 
      var y=document.getElementById("formName").value; 
      if (y.length < 6){ 
       var error2 = "Length of Name Must Br Greater than 6"; 
       $('#formName').tooltip({ 
       trigger: 'manual', 
       title: error2 
       }).on({ 
        blur: function() { 
         $(this).tooltip('show'); 
        }, 
        focus: function() { 
         $(this).tooltip('hide'); 
        } 
       }); 
      }else{ 
       $('#formName').data('tooltip',false); 
      } 
     }) 

}); 

2) у меня есть две проверки здесь, Вышеприведенный код работает только один раз, не каждый раз, когда курсор покидает конкретный тег ввода, как в коде, то есть, если запускается второе условие, и после этого я оставлю его пустым, он должен вызывать первую функцию, то есть «имя не должно быть пустым», скорее оно идет с «длиной не должно быть больше 6»

+0

'$ ("# ввод FORMNAME"). each' предполагает, что у вас есть одинаковые идентификаторы в разметке, является что дело? – dakait

+0

Нет, у меня есть другой тег ввода, но он не идентичен. У них есть разные идентификаторы. – Hunain

+0

Почему все говорят, что вы отправили дублированный вопрос, когда никто не отвечает на ваш вопрос ... – Hunain

ответ

4

Я бы изменил ваше переопределение на следующее:

$("input#formName").each(function() { 
    var $this = $(this); 
    $this.on("blur",this, function(){ 
     var x = $this.val(); 
     var error; 

     if (x==null || x=="") { error = "Name Must Not Be Empty"; } 
     elseif (x.length < 6) { error = "Length of Name Must Br Greater than 6"; } 

     $this.tooltip({ 
      trigger: 'manual', 
      title: error 
      }).on({ 
       blur: function() { 
        $(this).tooltip('show'); 
       }, 
       focus: function() { 
        $(this).tooltip('hide'); 
       } 
     }); 
    }); 
}); 

и изменить все материалы, чтобы использовать класс (.formName) вместо идентификатора (#formName)

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