JQuery: проверить перед отправкой - PullRequest
0 голосов
/ 23 ноября 2010

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

$('#gestione_profilo').submit(function () {

    $("#gestione_profilo").validate({

        rules: {

            'person_data[document_number]': "required"

        },

        messages: {

            'person_data[document_number]': "required"

        }

    });


    form_data = $(this).serialize();

    $.ajax({

        url: "<?php echo url_for('profile/index') ?>",
        type: "POST",
        data: form_data,
        success: function() { $("#forma_profile").unmask(); }

        });

        $("#forma_profile").mask("Aggiornando dati...");

        return false;

    });

Любая помощь?

Привет

Javier

1 Ответ

3 голосов
/ 23 ноября 2010

Вам необходимо вызвать .validate() в вашем обработчике document.ready, так как он устанавливает проверку (и для события submit, которое уже выполняется здесь), он не 't запустить проверки.Это должно выглядеть следующим образом:

$(function() {
  $("#gestione_profilo").validate({
    rules: {
        'person_data[document_number]': "required"
    },
    messages: {
        'person_data[document_number]': "required"
    },
    submitHandler: function(form){
      $.post("<?php echo url_for('profile/index') ?>", $(form).serialize(), 
        function() { 
          $("#forma_profile").unmask();
      });
      $("#forma_profile").mask("Aggiornando dati...");
    }
  });
});

Это включает в себя no .submit() обработчик, добавленный в саму форму (.validate() делает это снизу), вместо этого используйтеsubmitHandler параметр , который запускается только тогда, когда форма действительна, invalidHandler является его аналогом, который запускается, когда форма недействительна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...