Jquery validate не работает вернуть верный результат

0

У меня есть html как,

<form id="create_campaign_form">
   <input type="text" name="campaign_name" id="campaign_name" >
</form>
<button id="validate_now" type="button" >OK</button>

И у меня есть jquery с validate.js вроде,

  $.fn.validate_campaign=function(options){
  $("#create_campaign_form").validate({
        rules: {
            campaign_name  : "required",
           },
        messages:{      
            campaign_name   : "Please enter Campaign name",             
              },
 submitHandler: function(form) {
            alert(1);
            return true;
        }
    });
       $('#validate_now').click(function(){
          alert($('#create_campaign_form').valid());
       });
    }

     $(document).ready(function(){
         $(this).validate_campaign(); //Invoke on document ready

      });

моя проблема заключается в том, что когда я ввожу значение в текстовое поле и нажимаю alert($('#create_campaign_form').valid()); буттона alert($('#create_campaign_form').valid()); alwaise возвращает false и не вводит submitHandler

  • 0
    выглядит хорошо jsfiddle.net/arunpjohny/L222J/2
  • 0
    @ArunPJohny Но он не входит в submitHandler (), я использую плагин проверки запросов - v1.11.1
Показать ещё 4 комментария
Теги:
validation
jquery-validate

3 ответа

2

проверьте этот FIDDLE

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

$('#validate_now').click(function(){
      $('#create_campaign_form').submit();
   });

вводит ваш обработчик отправки и оповещения 1, если форма действительна.

1

Вам нужно создать кнопку отправки в форме, подобной

<form id="create_campaign_form">
    <input type="text" name="campaign_name" id="campaign_name" />
    <input type="submit" class="button" value="Submit" id="validate_now"/>
</form>

Демо: скрипка

или вручную вызовите метод отправки нажатием кнопки

<form id="create_campaign_form">
    <input type="text" name="campaign_name" id="campaign_name" />
</form>

<input type="button" class="button" value="Submit" id="validate_now"/>

тогда

$('#validate_now').click(function () {
    $("#create_campaign_form").submit()
});

Демо: скрипка

  • 0
    Мне нужно вызвать valid () с несколькими кнопками
  • 0
    @shijin см. ответ ниже (так же, как мой второй ответ), это должно работать в этом случае
Показать ещё 4 комментария
1

поместите свою кнопку html внутри тега формы

<form id="create_campaign_form">
  <input type="text" name="campaign_name" id="campaign_name" >
  <button id="validate_now" >OK</button>
</form>

По умолчанию кнопка с любым типом отправляется в html5.

  • 0
    на самом деле, тревога ($ ( '# create_campaign_form') правомочно ().); всегда возвращайте false; вот в чем проблема
  • 0
    нет ... он не вернет false, если вы введете что-то в текстовое поле, и он также вызовет submitHandler. но если вы ничего не вводите в текстовое поле и не нажимаете на кнопку, то в этом случае он вернет false.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню