Плагин JQuery and validate - как добавить рекламное сообщение при отправке - PullRequest
1 голос
/ 16 июля 2009

Мне нужно разместить рекламное сообщение либо внизу формы, либо в уведомлении, когда пользователь удовлетворяет определенным критериям. Я думаю, что предупреждение может быть лучше. Это связано с определенными почтовыми индексами, поэтому мне нужно написать регулярное выражение (я этого еще не сделал). Это должно произойти, когда пользователь нажимает кнопку «Отправить» и перед тем, как он отправляется на сервер. Я не уверен, как написать это и где это должно быть размещено в моем сценарии. Это то, что я имею до сих пор, если это помогает.

$(document).ready(function(){
$("#orderForm").validate({
    onfocusout: function(element) { 
        this.element(element); 
    },
    rules: {
        shipFirstName: {
            required: true,
        },
        shipFamilyName: {
            required: true,
        },
        shipPhoneNumber: {
            required: true,
        },
        shipStreetName: {
            required: true,
        },
        shipCity: {
            required: true,
        },
        billEmailAddress: {
            required: true,
        },
        billPhoneNumber: {
            required: true,
        },
        billCardNumber: {
            required: true,
        },
        billCardType: {
            required: true,
        },
        shipPostalCode: {
            postalCode: true,
        },
        fidelityCardNumber: {
            creditCardNumber: true,
        },
    }, //end of rules
}); // end of validate
}); // end of function

$.validator.addMethod('postalCode', 
function (value, element) 
{
      return this.optional(element) || /^[A-Z]{2}\d{1,2}\s\d{1,2}[A-Z]{2}$/.test(value);
}, 'Please enter a valid Postal Code');


$.validator.addMethod('creditCardNumber', 
function(value, element) 
{
    return this.optional(element) || /^[A-Z]{1}([A-Z]|\d){4}\s?([A-Z]|\d){5}\s?([A-Z]|\d){3}\d{1}(\!|\&|\@|\?){1}$/.test(value);
}, 'Please enter a valid card number');

Ответы [ 4 ]

1 голос
/ 16 июля 2009

Вы должны иметь возможность сделать что-то вроде этого (это заменит поведение отправки по умолчанию):

$("#orderForm").validate({
    submitHandler: function(form) {
        // code to display personal message
        // code to handle form submission 
    },
    onfocusout: function(element) { 
    ...
0 голосов
/ 25 февраля 2011
submitHandler: function(form) {
    if ($("form #hasAsked").val() != 'true' && /[MK]{2}[1-15|17|19|77]{2}/.test($("#shipPostalCode").val()) {
        openModalDialog();
        return false;
    }
    return true;
},
...

Функция

function openModalDialog() { 
     $("<div>Wanna buy?? <button value="yes" id="y/><button value="no" id="n/></div>")
          .after("body p:first-child")
          .show('slide')
          .find("#y, #n").click(function() { $("form #hasAsked").val("true") /* default: false */; })
          .end()
          .find("#y")
          .click(function() { $("form #hiddenbuy").val("true"); })
          .end()
          .find("#n")
          .click(function() { $("form #hiddenbuy").val("false"); })
}
0 голосов
/ 16 июля 2009

Вам необходимо предоставить submitHandler в качестве опции для метода validate .

0 голосов
/ 16 июля 2009

Напишите функцию щелчка для кнопки отправки и вызовите функцию ajax в этом

$("#submit").click(function(){
  alert("This is a promotional message on submit");
  //here write ur ajax code.
});

ajax в Jquery.

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