У нас есть простая функция JQuery, которая сериализует входные данные формы и объявляется вне $(document).ready()
(function( $ ){
$.fn.serializeObject = function() {
var formObj = {};
var a = this.serializeArray();
$.each(a, function() {
if (formObj[this.name] !== undefined) {
if (!formObj[this.name].push) {
formObj[this.name] = [formObj[this.name]];
}
formObj[this.name].push(this.value || '');
} else {
formObj[this.name] = this.value || '';
}
});
return formObj;
};
})( jQuery );
Мы использовали эту функцию много раз, и ее вызывают при подаче формы:
$(document).ready(function(){
$('#test').submit(function(){
var vars = $(this).serializeObject();
console.log(vars);
return false;
});
});
Это ВСЕГДА работает, но мы работаем над новым проектом, и мы получаем следующую ошибку:
Uncaught TypeError: $ (...). SerializeObject не является функцией
Вот скрипка
В новом проекте он работает только в том случае, если функция serializeObject внутри документа готова
$(document).ready(function(){
(function( $ ){
$.fn.serializeObject = function() {
var formObj = {};
var a = this.serializeArray();
$.each(a, function() {
if (formObj[this.name] !== undefined) {
if (!formObj[this.name].push) {
formObj[this.name] = [formObj[this.name]];
}
formObj[this.name].push(this.value || '');
} else {
formObj[this.name] = this.value || '';
}
});
return formObj;
};
})( jQuery );
$('#test').submit(function(){
var vars = $(this).serializeObject();
console.log(vars);
return false;
});
});
Мы используем ту же версию JQuery и других внешних библиотек. Есть идеи? благодаря
javascript,jquery,function,scope,