2014-01-23 4 views
0

Следующий код jQuery был разработан для изменения стиля ввода в случае, если пользователь отправляет форму без предварительного заполнения поля. Наряду с изменением стиля ввода он блокирует событие submit, когда поле пусто. Однако он также блокирует событие всякий раз, когда что-то в нем. Кто-нибудь знает, почему?jQuery отключает кнопку отправки

$('document').ready(function() { 
    $('#form1, #form2').submit(function(event) { 
     if($.trim($(this).children('input').val()).length == 0) { 
      $(this).parent().addClass('has-error'); 
      event.preventDefault(); 
     } 
    }); 
}); 

HTML код:

<form class="center" id="form1" action="/success" method="get"> 
    <input type="text" name="content" placeholder="Content..." class="form-control input-lg"> 
    <button type="submit">Submit!</button> 
</form> 
+1

Кажется, работает отлично здесь http://jsfiddle.net/j08691/KVWg2 /. Где # form2? – j08691

+0

Исправлено это, проблема с детьми(). У меня был добавлен дополнительный тег div, а children() просто выбирает прямые теги, следующие за родительским тегом. Спасибо за вашу помощь, тем не менее! – user3228959

ответ

0

насчет:

$(document).ready 
(
    function() 
    { 
     $('#form1').submit 
     (
      function (e) 
      { 
       if ($('[name="content"]').val() == '') // You can add an id and select by id 
       { 
        e.preventDefault(); 
        $('[name="content"]').attr('class', 'has-error'); 
       } 
      } 
     ); 
    } 
); 
0

Удалить Form2 и попробовать:

$('#form1').submit(function(event) { 
     if($.trim($(this).children('input').val()).length == 0) { 
      $(this).parent().addClass('has-error'); 
      event.preventDefault(); 
     } 
    }); 
Смежные вопросы