Я действительно борюсь с этим.
То, что я пытаюсь сделать для своего работодателя, это отправить проверенную форму, проблема в том, что на основе отправленных полей всплывающая форма (с использованием fancybox версии 3 - http://fancyapps.com/fancybox/3/) условия таковы, что когда местоположение является Шотландией, и окончательная сумма превышает 4550 фунтов стерлингов (вариант 2 во втором поле выбора).
Я запускаю проверку, используя $(this).validate ()
(так как на странице несколько форм). Затем я хочу управлять submitHandler
и, исходя из условия, запустить fancybox как confirmation
, чтобы при нажатии на кнопку, отображаемую в fb.box
, отправлялась форма.
Мне кажется, я не передаю какую-то переменную или пропускаю что-то важное Я знаю, что есть и другие способы добиться этого, но из-за опций стилевого оформления, доступных с помощью fancybox, это предпочтительный метод, пожалуйста, помогите, я пытался это сделать в течение 2 дней.
Мое последнее средство состоит в том, чтобы взять и передать переменные из проверенной формы в служебную коробку, а затем отправить из коробки (не идеально, но может быть единственным способом). Если вы хотите просмотреть форму, пожалуйста, посетите:
https://ivapractice.co.uk
$('form').each(function() {
$(this).validate({
rules:{
location:"required",
debtAmount:"required",
incomeStatus:"required",
livingStatus:"required",
assets:"required",
fullname:{
required:true,
minlength:3
},
phonenumber:{
required:true,
minlength:11,
maxlength:11
},
email:{
required:true,
emailvalidate:true
},
gridCheck:"required"
},
messages:{
location:"Please select what region you live in",
debtAmount:"Please select your approximate debt level",
incomeStatus:"How do you recieve your income",
livingStatus:"What's your current living status",
assets:"Please select an option",
fullname:"Please enter you full name",
phonenumber:"Please enter a valid phone number",
email:"Please enter a valid e-mail address",
gridCheck:"We require your consent to submit your enquiry"
},
submitHandler: function(form) {
// some other code
// maybe disabling submit button
// then
var location = $('[name=location]').val();
var debtAmount = $('[name=debtAmount]').val();
var incomeStatus = $('[name=incomeStatus]').val();
var livingStatus = $('[name=livingStatus]').val();
var assets = $('[name=assets]').val();
if(location == 'Scotland'){
$.fancybox.open({
src :
'<div class="container"><div class="row"><div class="col"><h1 class="text-center">Thanks for you Enquiry</h1></div></div><div class="row"><div class="col text-center><p>Based on the information you have submitted, an IVA may not be suiteable.</p><p>There are many ways in which we can still help and we work with a panel of debt advice companies that could stilll help.</p><p>Your data is important to us and we just want to maek sure you are happy for you to refer you detaisl for a more suitable soluiotion.<p></div></div><div class="row"><div class="col-md-6 col-sm-12"><button data-value="0" data-fancybox-close class="btn">I need a bit more time</button></div><div class="col-md-6 col-sm-12"><button data-value="1" data-fancybox-close class="btn">Sure that is ok</button></div></div></div>',
type : 'inline',
opts : {
afterLoad: function( instance, current, e) {
var button = e ? e.target || e.currentTarget : null;
var value = button ? $(button).data('value') : 0;
if(value == 1){
alert():
}
}
}
})
}
else {
//$(form).submit();
}
}
});
}