Можно ли объявить одну проверку JQuery для двух форм с разными данными POST?

0

Я объединил свой код jQuery Validate для двух форм, подобных этому,

$("#formregister,#updateform").validate({

  rules: {
    captcha: {
      required: true,
      remote: {
        url: "application/modules/customer_account/captcha/check.php",
        type: "post"
      }
    },

    //emails
    email: {
      required: true,
      email: true,
      minlength: 2,
      remote: {
        url: "checkemail.php", // temp -  this should be module/controller/function
        type: "post",
        data: {
          email: function() {
            return $('#formregister:input[name="email"],#updateform:input[name="email"]').val();
          }
        }
      }
    },
    //passwords
    user_password: {
      required: true,
      minlength: 6
    },
    repassword: {
      required: true,
      minlength: 6,
      equalTo: "#user_password"
    },
    // billing
    bill_company_name: {
      required: true
    },
    bill_first_name: {
      required: true
    },
    bill_last_name: {
      required: true
    },
    bill_address: {
      required: true
    },
    bill_city: {
      required: true
    },
    bill_state: {
      required: true
    },
    bill_zip_code: {
      required: true
    },
    bill_country: {
      required: true
    },
    bill_phone: {
      required: true
    },
    ship_company_name: {
      required: true
    },
    ship_first_name: {
      required: true
    },
    ship_last_name: {
      required: true
    },
    ship_address: {
      required: true
    },
    ship_city: {
      required: true
    },
    ship_state: {
      required: true
    },
    ship_zip_code: {
      required: true
    },
    ship_country: {
      required: true
    },
    ship_phone: {
      required: true
    },
    businessType: {
      required: true
    },
    businessValue: {
      required: true
    },
    businessLicense: {
      required: true
    },
    aboutUsHear: {
      required: true
    },
    aboutUsValue: {
      required: true
    }

  },


  // messages
  messages: {
    captcha: {
      required: "Enter the characters as seen on the image above.",
      remote: $.format("Please provide Correct captcha!")
    },
    email: {
      required: "Please enter valid email address",
      minlength: $.format("Enter at least {0} characters"),
      remote: $.format("{0} is already registered!")
    },
    password: {
      required: "Please Provide a password",
      rangelength: $.format("Enter at least {0} characters")
    },
    repassword: {
      required: "Repeat your password",
      minlength: $.format("Enter at least {0} characters"),
      equalTo: "Enter the same password as above"
    }
  },

  //on form submitting
  submitHandler: function(form) { // for demo
    form.submit();
  },
  // field messages
  success: function(label) {
    var name = label.attr('for');
    var messages = new Array(
      "Looks good1!",
      "You got it1!",
      "is Ok1!");
    var num = Math.floor(Math.random() * 3);

    label.text(name + ' ' + messages[num]).addClass("valid");
    label.select(name + ' ' + messages[num]).addClass("valid");

  }
});

Как видите, существуют две формы: #formregister и #updateform. Для #formregister мне нужны только данные email почты, а для #updateform мне нужны email и uid которые не показаны здесь в этом коде. Когда я пытался отправить каждую из форм, данные POST не undefined, почему? Что-то не так с тем, как я конкатенирую его? Есть ли способ, которым я все еще мог бы следовать за этими одиночными инициализациями проверки и не выдавать неопределенные данные для публикации? Благодарю.

  • 0
    @nbanic Не зная, как выглядит форма и как они делятся мнениями, невозможно помочь вам. Пожалуйста, вставьте формы также.
  • 0
    @r.piesnikowskir.piesnikowski Я только отредактировал вопрос, я не автор :)
Показать ещё 1 комментарий
Теги:

1 ответ

0

Я не знаю, подходит ли это решение для всех, но обратите внимание на эту часть моего jQuery Validate

   data: {
      email: function() {
        return $('#formregister:input[name="email"],#updateform:input[name="email"]').val();
      }
    }

обратите внимание, что идентификаторы формы и элемент, который необходимо найти, не разделены даже одним space. Я редактировал свою форму, удачное редактирование, я думаю, и это сработало. Я не понял, почему для этого сценария имело space простое space. Во всяком случае, это решило. Спасибо всем.

Ещё вопросы

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