2010-11-23 5 views
0

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

$('#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; 

    }); 

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

С уважением

Хавьер

ответ

3

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

$(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..."); 
    } 
    }); 
}); 

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

+0

Спасибо, но это не разоблачает форму и не загружает введенные значения. – ziiweb 2010-11-23 14:09:29