Полагаю, это проблема масштаба, но я не могу ее решить! У меня есть функция, которая проверяет форму перед отправкой. При отправке он проходит по каждому полю и проверяет детали. Затем следует установить файл cookie для каждого значения, поскольку форма временно отправляет пользователя с сайта, и мне нужны эти данные при его возврате.
У меня есть функция set cookie, которая прекрасно работает, но вызов этой функции из двух вложенных функций ничего не делает.
$(document).ready(function() {
$("form#mainRequestBrochure").submit(function(event) {
event.preventDefault(); //prevent form.submit()
var missingData = 0; // missing required fields counter
$("form#contactForm input").each(function(index) {
var ok = 0;
var v = $(this).val();
var n = $(this).attr('name');
if(isBlank(v)===true) { // if empty
$(this).addClass("error"); // add error class
missingData++; // add one to counter
} else if(($(this).attr('type')==="email")&&(!isValidEmailAddress(v))) {
$(this).addClass("error");
missingData++;
} else if ($(this).hasClass("error")) { // not empty but has had error class applied
$(this).removeClass("error"); // clear error class
ok = 1;
} else {
ok = 1;
}
if(ok===1) createCookie(n,v,7);
});
createCookie('Testing2','test',7);
// if no errors recorded, submit the form
if(missingData === 0 ) $("form#mainRequestBrochure").submit();
});
});
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
alert('cookie ' + name + ' set.');
}
Код непосредственно внутри $("form#mainRequestBrochure").submit(function(event)
работает нормально, создавая cookie с именем Testing2, используя createCookie('Testing2','test',7)
, но когда я помещаю эту же строку кода в цикл .each()
, он ничего не делает.
Как я уже сказал, я предполагаю, что это масштабная вещь, но это заставляет меня взбираться на стену ...