Плагин проверки JQuery не поддерживается ни одним IE или Firefox <3.6, но отлично работает для Chrome и Safari - PullRequest
1 голос
/ 17 октября 2011

Это мой первый пост, и я буду признателен, если я смогу получить решение от вас как можно скорее.Заранее спасибо.:)

Я использую плагин проверки JQuery в моем приложении.У меня есть форма регистрации и использует метод .submit () для отправки формы.Но когда я пытаюсь отправить ту же форму из Mozilla или IE, она отправляет форму, но не проходит проверку.Таким образом, вкратце без проверки, я получаю данные мусора в вашей БД.

Я прикрепляю свой файл .JS и, пожалуйста, посмотрите и дайте мне знать, если я делаю что-то не так.

home.js

// Правила валидации

    $('#signup-form').validate({

        rules: {
            'firstname':       { required:  true },
            'lastname':        { required:  true },
            'email':           { required:  true,
                                 email:     true,
                                 remote:  { url:  siteurl+'ajax/checkemail',
                                            type: 'post' }},
. 
.
.
.
messages: {
            'firstname':       { required:  'Please enter your first name' },
            'lastname':        { required:  'Please enter your last name' },
            'email':           { required:  'Please enter your email address',
                                 email:     'Your email address is invalid',
                                 remote:    'The email you chose is already in use' },

    .
    .
    .       
    errorLabelContainer: $(".fail-message")

    });.

// Нажать кнопку регистрации ОК

            $("#signup-ok-btn").click(function(){           
              $("#signup-form").submit();
              return false;         
             });

// Форма регистрации отправить

     $('#signup-form').submit(function(){

        //If the form is invalid
        if ($('#signup-form').valid()){             
            return true;                                    
        } else {                
            //Show errors
            $('#signup-form-fail').fadeIn(300);
            return false;                   
        }

    });

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

1 Ответ

1 голос
/ 17 октября 2011

Вы должны использовать submitHandler внутри вашего кода подтверждения.

$('#signup-form').validate({
   rules: {
     'firstname': { required: true },
     'lastname': { required: true },
     'email': {
        required: true,
        email: true,
        remote: {
           url: siteurl+'ajax/checkemail',
           type: 'post'
        }
     }
   },

   messages: {
     'firstname': { required: 'Please enter your first name' },
     'lastname': { required: 'Please enter your last name' },
     'email': {
        required: 'Please enter your email address',
        email: 'Your email address is invalid',
        remote: 'The email you chose is already in use'
     }
   },

   errorLabelContainer: $(".fail-message"),

   submitHandler: function(form) {
      ...WHAT YOU WANT TO HAPPEN WHEN THE FORM IS SUBMITTED...
      form.submit();
   }
});

Вы не должны ничего прикреплять к кнопке отправки вручную; Плагин проверки обрабатывает все это за вас.

Вот официальная документация для плагина jQuery Validation: http://docs.jquery.com/Plugins/Validation. Тонны полезной информации и примеров там.

...