Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
/** * Created with JetBrains PhpStorm. * User: Vitaly * Date: 06.06.13 * Time: 20:22 * To change this template use File | Settings | File Templates. */ function inArray(needle, haystack) { var length = haystack.length; for(var i = 0; i < length; i++) { if(typeof haystack[i] == 'object') { if(arrayCompare(haystack[i], needle)) return true; } else { if(haystack[i] == 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;">'); } }); } })(); }); //Проверка полей форм for (var i = 1; i <= 4; i++) { $.lFormerCheckField('form'+i+'name', 'text', "Пожалуйста, введите ваше имя"); $.lFormerCheckField('form'+i+'phone', 'phone', "Необходимо указать номер телефона"); $.lFormerCheckField('form'+i+'email', 'email', "Не корректный Email адрес"); $.lFormerCheckField('form'+i+'city', 'text', "Слишком короткое название города"); } /** * Отправка форм. * */ var email = $('#form2email').val() || 'Нет'; var email = $('#form1email').val() || 'Нет'; var email = $('#form3email').val() || 'Нет'; var email = $('#form9email').val() || 'Нет'; var email_asked = 1; function feedback(vars) { var bt = $(vars.form).find('.feedback'); var btc = bt.clone(); var bvc = bt.val(); var cfg = conf[vars.act].cfg; //проставляем полям галочку, что верно (Пока убрал) // $("form[name='" +vars.act+ "']").find("input").each(function(){ // if($(this).val().length > 0){ // $(this).addClass("inp_sucess"); // } // }); // $('.err_mess').remove(); /* $(vars.form).find('[name="e-mail"]').change(function(){ if($(vars.form).find('[name="e-mail"]').val().length > 3){ email_asked++; }else{ email_asked = 0; } }); */ $.ajax({ type: 'POST', url: 'feedback/', cache: false, dataType: 'json', data: 'act=' + vars.act + '&' + vars.data + '&email_asked=' + email_asked, 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 }); $(vars.form).find('[name='+ k +']').parent().find('.err_mess').remove(); $(vars.form).find('[name='+ k +']').after('<div class="err_mess">' +val+ '</div>'); }); } if(isset(answer.infos)) { $.each(answer.infos, function(k,val) { $("input[name='" +k+ "']").addClass("inp_error"); //$.jGrowl(val, {theme: 'infos', header: 'Внимание!', life: 3000 }); $(".popup7, #overlay").fadeIn(300); $("#overlay").click(function(){ $(".popup7").fadeOut(300); }); setTimeout(function () { $(".popup7, #overlay").fadeOut(400); }, 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); $(e).removeClass("inp_sucess"); $(e).addClass("inp_error"); } } }); } 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'); if(isset(answer.ask_email) && answer.ask_email == 1){ $(".modal_block3").fadeIn(300); $(".modal_close3").click(function(){ $(".modal_block3").fadeOut(300); $(vars.form).find('[name="e-mail"]').focus(); }); email_asked++; }else if(isset(answer.ok) && answer.ok == 1) { //Передаём данные из формы в CRM sendFormer($(vars.form)); $(vars.form)[0].reset(); //закрытие модального окна после успешной отправки $(".modal_block").fadeOut(300); //затираем все стили правильнозаполненных полей $(".inp_sucess").removeClass('inp_sucess'); yaCounter36056540.reachGoal('ClickActionTarget'); return true; } } }); } $(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; }); }); // done //Цепляем слушатель отправки формы function sendFormer(form){ var name = form.find('input[name=name]').val(), phone = form.find('input[name=tell]').val(), email = form.find('input[name=e-mail]').val(), branchId = '83', dealType = '2'; console.log("Успешно!"); //отправляем в CRM createDeal(email, name, phone, branchId, dealType); }; function createDeal(email, name, phone, branchId, dealType, cb) { cb = cb || null; $.get('http://cast.ru/api/create_external_deal?branch_id='+ branchId + '&deal_type=' + dealType + '&secret=11111&email=' + email + '&name=' + name + '&phone=' + phone, {}, function(response) { if (cb && typeof cb == 'function') { cb(response); } }); }
ВОт код JS отправки всей формы:
Вставил туда где Отправка форм. но тоже не работает. Буду благодарен за совет.