вопрсопо конфликту JS / jQuery

12
D
На сайте с 23.06.2014
Offline
1
3075

Всем добрый день!

Есть код:

<script type="text/javascript">


/**
Функция отправляет ajax-запрос
result_id - id элемента, в который будет подгружена информация
url - адрес страницы, которая будете подгружена
**/
function AjaxFormRequest(result_id,former,url) {
jQuery.ajax({
url: "submit.php", //Адрес подгружаемой страницы
type: "POST", //Тип запроса
dataType: "html", //Тип данных
data: jQuery("#"+former).serialize(),
success: function(response) { //Если все нормально
$('#'+result_id).html(response);
},
error: function(response) { //Если ошибка
document.getElementById(result_id).innerHTML = "Ошибка при отправке формы";
}
});
return false

}
</script>

и кнопка

<input class="feedback btn btn-block btn-large btn-success" name="send" type="submit" value="Відправити замовлення!" onclick="AjaxFormRequest('result_div_id', 'former', 'submit.php')">

сам скрипт должен проверять заполненую форму на заполненность и показывать ошибки заполнения, после успешного заполнения должно всплывать сообщение об отправке формы и ДОПОЛНИТЕЛЬНО отправлять данные на сервер через submit.php.

В чем проблема : после нажатия на submit заполненой формы срабатывает index.php который запускаеться feedback.js в папке feedback. После чего даные формы оправляеться на почту и кнопка замирает (становиться не активной), а в хроме вываливает ошибку - Uncaught TypeError: undefined is not a function. Но submit.php не срабабатывает.

по ссыле - архив с htm и js, которые используються всем скриптом, большое подозрение на конфликт js. решения которые в статьях и форумах не подходят перепробовал много вариантов.

Прошу помощи, так как уже несколько дней мучаюсь. Заранее благодарен!

C
На сайте с 04.02.2005
Offline
291
#1

Никаких здесь конфликтов не должно быть

сам скрипт должен проверять заполненую форму на заполненность и показывать ошибки заполнени

Где это в скрипте?


после успешного заполнения должно всплывать сообщение об отправке формы

Где это в скрипте

Все что дальше написано я не расшифровал

потому что замирание кнопки -я не увидел в скрипте

зы смотреть по ссылке не буду.

D
На сайте с 23.06.2014
Offline
1
#2

Chukcha, останавливаеться на 125 строке ($.arcticmodal('close');) в


function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(typeof haystack == 'object') {
if(arrayCompare(haystack, needle)) return true;
} else {
if(haystack == needle) return true;
}
}
return false;
}
window.isset = function (v) {
if (typeof(v) == 'object' && v == 'undefined') {
return false;
} else if (arguments.length === 0) {
return false;
} else {
var buff = arguments[0];
for (var i = 0; i < arguments.length; i++){
if (typeof(buff) === 'undefined' || buff === null) return false;
buff = buff[arguments[i+1]];
}
}
return true;
}

function myconf() {
var cf = $.Deferred();
$.ajax({
type: 'POST',
url: 'feedback/',
dataType: 'json',
data: 'act=cfg',
success: function(answer) {
cf.resolve(answer.configs);
}
});
return cf;
}

var mcf = myconf();

mcf.done(function(conf) {

$(document).ready(function() {
(function() {
var fb = $('.feedback');
if(fb.length > 0) {
fb.each(function(){
var form = $(this).closest('form'), name = form.attr('name');
//console.log(form);
if(isset(conf[name]) && isset(conf[name].cfg.antispamjs)) {
$(form).prepend('<input type="text" name="'+ conf[name].cfg.antispamjs +'" value="tesby" style="display:none;">');
}
});
}
})();
});


/**
* Отправка форм.
*
*/

function feedback(vars) {
var bt = $(vars.form).find('.feedback');
var btc = bt.clone();
var bvc = bt.val();
var cfg = conf[vars.act].cfg;

$.ajax({
type: 'POST',
url: 'feedback/',
cache: false,
dataType: 'json',
data: 'act=' + vars.act + '&' + vars.data,
beforeSend: function() {
//$(bt).val('');
$(bt).prop("disabled", true);
$(bt).addClass('loading');
},
success: function(answer) {
//console.log(cfg);
if(isset(cfg.notify) && !/none/i.test(cfg.notify)) {

if(/textbox/i.test(cfg.notify)) {
if(isset(answer.errors)) {
$.each(answer.errors, function(k,val) {
$.jGrowl(val, {theme: 'error', header: 'ПОМИЛКА!', life: 3000 });
});
} if(isset(answer.infos)) {
$.each(answer.infos, function(k,val) {
$.jGrowl(val, {theme: 'infos', header: 'УВАГА!', life: 3000 });
});
}

} if(/color/i.test(cfg.notify)) {
$(vars.form).find('input[type=text]:visible, textarea:visible, select:visible').css({'border': '1px solid #D7D5CF'}, 300);
if(isset(answer.errors)) {
$.each(answer.errors, function(k,val) {
var reg = /[a-z]/i;
if(reg.test(k)) {
var e = $(vars.form).find('[name='+ k +']');
if(e.length == 1) {
$(e).css({'border': '1px solid #FF532E'}, 100);
}
}
});
} if(isset(answer.infos)) {
var li='', $inf = $('<ul>', {id:'feedback-infolist'});
$.each(answer.infos, function(k,val) {
li += '<li>'+ val +'</li>';
});

$inf.html(li);

$.arcticmodal('close');

if(/modal/i.test(cfg.notify)) {
var m = $('<div class="box-modal" id="feedback-modal-box" />');
m.html($inf);
m.prepend('<div class="modal-close arcticmodal-close">X</div>');
$.arcticmodal({content: m});
}
//bt.replaceWith($inf);

/* setInterval(function(){
//$('#feedback-inf-box').replaceWith(btc);
$('#feedback-modal-box').arcticmodal('close');
}, 4000);*/
}

}
}
$(bt).prop("disabled", false);
$(bt).removeClass('loading');
//$(bt).val(bvc);

if(isset(answer.ok) && answer.ok == 1) {
$(vars.form)[0].reset();
}
}
});

}

$(document).on('mouseenter mouseover', '.feedback', function(){
var form = $(this).closest('form'), name = form.attr('name');
if(isset(conf[name]) && isset(conf[name].cfg.antispamjs)) {
$('input[name='+ conf[name].cfg.antispamjs +']').val('');
}
});


/**
* Обработчик кнопки форм.
* Кнопка должна быть внутри тегов <form> c классом .feedback
* будет отправлено любое кол-во полей, кроме файлов
*
*/

$(document).on('click', '.feedback', function(){
var form = $(this).closest('form'), name = form.attr('name'), obj = {};
obj.form = form;
obj.act = name;
obj.data = $(form).serialize();

feedback(obj);

return false;
});

});

с выводом ошибки - Uncaught TypeError: undefined is not a function. Код по частям работает, а совмещенный - отказывается.

C
На сайте с 04.02.2005
Offline
291
#3

Это читать не возможно

есть bbcode

code

D
На сайте с 23.06.2014
Offline
1
#4

прошу прощения, вот:

function inArray(needle, haystack) {

var length = haystack.length;
for(var i = 0; i < length; i++) {
if(typeof haystack == 'object') {
if(arrayCompare(haystack, needle)) return true;
} else {
if(haystack == needle) return true;
}
}
return false;
}
window.isset = function (v) {
if (typeof(v) == 'object' && v == 'undefined') {
return false;
} else if (arguments.length === 0) {
return false;
} else {
var buff = arguments[0];
for (var i = 0; i < arguments.length; i++){
if (typeof(buff) === 'undefined' || buff === null) return false;
buff = buff[arguments[i+1]];
}
}
return true;
}

function myconf() {
var cf = $.Deferred();
$.ajax({
type: 'POST',
url: 'feedback/',
dataType: 'json',
data: 'act=cfg',
success: function(answer) {
cf.resolve(answer.configs);
}
});
return cf;
}

var mcf = myconf();

mcf.done(function(conf) {

$(document).ready(function() {
(function() {
var fb = $('.feedback');
if(fb.length > 0) {
fb.each(function(){
var form = $(this).closest('form'), name = form.attr('name');
//console.log(form);
if(isset(conf[name]) && isset(conf[name].cfg.antispamjs)) {
$(form).prepend('<input type="text" name="'+ conf[name].cfg.antispamjs +'" value="tesby" style="display:none;">');
}
});
}
})();
});


/**
* Отправка форм.
*
*/

function feedback(vars) {
var bt = $(vars.form).find('.feedback');
var btc = bt.clone();
var bvc = bt.val();
var cfg = conf[vars.act].cfg;

$.ajax({
type: 'POST',
url: 'feedback/',
cache: false,
dataType: 'json',
data: 'act=' + vars.act + '&' + vars.data,
beforeSend: function() {
//$(bt).val('');
$(bt).prop("disabled", true);
$(bt).addClass('loading');
},
success: function(answer) {
//console.log(cfg);
if(isset(cfg.notify) && !/none/i.test(cfg.notify)) {

if(/textbox/i.test(cfg.notify)) {
if(isset(answer.errors)) {
$.each(answer.errors, function(k,val) {
$.jGrowl(val, {theme: 'error', header: 'ПОМИЛКА!', life: 3000 });
});
} if(isset(answer.infos)) {
$.each(answer.infos, function(k,val) {
$.jGrowl(val, {theme: 'infos', header: 'УВАГА!', life: 3000 });
});
}

} if(/color/i.test(cfg.notify)) {
$(vars.form).find('input[type=text]:visible, textarea:visible, select:visible').css({'border': '1px solid #D7D5CF'}, 300);
if(isset(answer.errors)) {
$.each(answer.errors, function(k,val) {
var reg = /[a-z]/i;
if(reg.test(k)) {
var e = $(vars.form).find('[name='+ k +']');
if(e.length == 1) {
$(e).css({'border': '1px solid #FF532E'}, 100);
}
}
});
} if(isset(answer.infos)) {
var li='', $inf = $('<ul>', {id:'feedback-infolist'});
$.each(answer.infos, function(k,val) {
li += '<li>'+ val +'</li>';
});

$inf.html(li);

$.arcticmodal('close');

if(/modal/i.test(cfg.notify)) {
var m = $('<div class="box-modal" id="feedback-modal-box" />');
m.html($inf);
m.prepend('<div class="modal-close arcticmodal-close">X</div>');
$.arcticmodal({content: m});
}
//bt.replaceWith($inf);

/* setInterval(function(){
//$('#feedback-inf-box').replaceWith(btc);
$('#feedback-modal-box').arcticmodal('close');
}, 4000);*/
}

}
}
$(bt).prop("disabled", false);
$(bt).removeClass('loading');
//$(bt).val(bvc);

if(isset(answer.ok) && answer.ok == 1) {
$(vars.form)[0].reset();
}
}
});

}

$(document).on('mouseenter mouseover', '.feedback', function(){
var form = $(this).closest('form'), name = form.attr('name');
if(isset(conf[name]) && isset(conf[name].cfg.antispamjs)) {
$('input[name='+ conf[name].cfg.antispamjs +']').val('');
}
});


/**
* Обработчик кнопки форм.
* Кнопка должна быть внутри тегов <form> c классом .feedback
* будет отправлено любое кол-во полей, кроме файлов
*
*/

$(document).on('click', '.feedback', function(){
var form = $(this).closest('form'), name = form.attr('name'), obj = {};
obj.form = form;
obj.act = name;
obj.data = $(form).serialize();

feedback(obj);

return false;
});

});
VHS
На сайте с 28.09.2007
Offline
142
VHS
#5

arcticmodal где объявлено?

D
На сайте с 23.06.2014
Offline
1
#6

никто не решаеться подсказать, неужели такой сложный вопрос?!

VHS
На сайте с 28.09.2007
Offline
142
VHS
#7

Ошибка говорит следующее: "Незаданная переменная - это вам не функция!".

Расшифровка: скобочки приставлены к тому, чего нет.

D
На сайте с 23.06.2014
Offline
1
#8

VHS, и бы и сам хотел понять на каком этапе, по отдельности код работает, а вот совмещеннный упираеться в ошибку. Вот бы понять как исправить.

VHS
На сайте с 28.09.2007
Offline
142
VHS
#9

Ну понятно только одно - где-то что-то вызывается, отчего обновляются переменные или контекст выполнения. А на каком этапе - это надо в отладку.

Попробуйте так - возможно отпустит:

jQuery(document).ready(function ($) {

вместо

$(document).ready(function() {

сильно не вникал, проблема на поверхности

D
На сайте с 23.06.2014
Offline
1
#10

VHS, не помогло, ошибка осталась :(

Будет возможность разобраться, очень прошу помощи. с меня причитаеться.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий