Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/61: Рейтинг темы: голосов - 61, средняя оценка - 4.56
0 / 0 / 1
Регистрация: 23.06.2014
Сообщений: 26

Uncaught TypeError: undefined is not a function

23.06.2014, 12:07. Показов 11966. Ответов 35
Метки нет (Все метки)

Всем добрый день!
Есть код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<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>
и кнопка
HTML5
1
<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. решения которые в статьях и форумах не подходят перепробовал много вариантов.
Прошу помощи, так как уже несколько дней мучаюсь. Заранее благодарен!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.06.2014, 12:07
Ответы с готовыми решениями:

Uncaught TypeError: undefined is not a function
Всем привет! Искал решение и не нашел( Не разобрался так и( Проблема здесь коттедж-казань.рф Я думаю вам проще будет в консоли...

Uncaught TypeError: undefined is not a function в FancyBox
Суть такая я подключаю на страницу fancybox что бы сделать фото галерею и все работает отлично, вот пример кода &lt;link...

Связка php+mysql+ajax: Uncaught TypeError: undefined is not a function
Здравствуйте! Вот уже более 6 часов не могу найти причину неработоспособности своего кода (новичок в этом деле). Есть select в...

35
112 / 112 / 18
Регистрация: 24.09.2013
Сообщений: 509
23.06.2014, 15:21
он не пишет на какой строке ошибка?
0
0 / 0 / 1
Регистрация: 23.06.2014
Сообщений: 26
23.06.2014, 15:23  [ТС]
Web_Master, пишет - 125 стр
0
 Аватар для mihalken
97 / 97 / 74
Регистрация: 15.05.2014
Сообщений: 269
Записей в блоге: 2
24.06.2014, 09:42
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$( '.feedback' ).on('click', function() {
    $.ajax({
        url: "submit.php",
        type: "POST",
        dataType: "html",
        data: $( "#former" ).serialize(),  
        success: function(response) {
            $( '#result_div_id' ).html( response ); 
        }, 
        error: function(response) {
            $( '#result_div_id' ).text( "Ошибка при отправке формы" );
        } 
     });
});
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<form action="" method="POST" name="former" id="former"><!-- сама форма (#former) -->
    <label class="radio">
        <input type="radio" value="1" name="service_type"> Прибирання (регулярне)
    </label>
    <label class="radio">
        <input type="radio" value="2" name="service_type"> Прибирання (генеральне)
    </label>
    <label class="radio">
        <input type="radio" value="3" name="service_type"> Прибирання (після ремонту)
    </label>
    <label class="radio">
        <input type="radio" value="4" name="service_type"> Прибирання погодинне
    </label>
    <div class="input-prepend">
        <span class="add-on"><i class="icon-user"></i></span>
        <input class="input-medium focused" name="first_name" type="text" placeholder="І'мя, по-батькові">
    </div>
    <div class="input-prepend">
        <span class="add-on"><i class="icon-user"></i></span>
        <input class="input-medium focused" name="last_name" type="text" placeholder="Прізвище">
    </div>
    <div class="input-prepend">
        <span class="add-on"><i class="icon-book"></i></span>
        <input class="input-medium focused" name="phone" type="text" placeholder="Телефон">
    </div>
    <div class="input-prepend">
        <span class="add-on"><i class="icon-envelope"></i></span>
        <input class="input-medium focused" name="email" type="text" placeholder="E-mail">
    </div>
    <!-- Площа приміщення -->
    <select class="span2" name="area_id">
        <option value="">Площа примішення</option>
        <option value="1">до 40кв.м.</option>
        <option value="2">до 50кв.м.</option>
        <option value="3">до 60кв.м.</option>
        <option value="4">до 70кв.м.</option>
        <option value="5">до 80кв.м.</option>
        <option value="6">до 90кв.м.</option>
        <option value="7">до 100кв.м.</option>
        <option value="8">до 110кв.м.</option>
        <option value="9">до 120кв.м.</option>
        <option value="10">більше 121кв.м.</option>
    </select>
    <!-- Місцезнаходження -->
    <textarea class="input-lage focused" name="locate" placeholder="Місцезнаходження"></textarea>
    <!-- подсказка -->
        <div class="tool-tip">
            <i class="tool-tip__icon">i</i>
            <p class="tool-tip__info">
            <span class="info"><span class="info__title">Місцезнаходження (приклад):</span> <span class="info__text"></br>м.Полтава (Полтавська обл.) </br>вул.Леніна, корп. 2, буд.14, під'їзд 1, кв.101</span></span>
            </p>
        </div>
    <!-- Деталі замовлення -->
    <textarea class="input-lage focused" name="inford" placeholder="Деталі замовлення"></textarea>
    <!-- подсказка -->
    <div class="tool-tip">
        <i class="tool-tip__icon">i</i>
        <p class="tool-tip__info">
        <span class="info"><span class="info__title">Деталі замовлення (коротка важлива інформація про особливості та умови прибирання):</span></span>
        <span class="info"><span class="info__title">Приклад:</span> <span class="info__text"></br>47кв.м., за диваном не прибирати</br>свої миючі засоби</span></span>
        </p>
    </div>
    <label class="checkbox">
        <input type="checkbox" value="так" name="checkbox"> Я погоджуюсь з правилами
    </label>
    
    <input class="feedback btn btn-block btn-large btn-success" name="send" type="button" value="Відправити замовлення!" /> <!-- кнопка отправки формы (AJAX) -->
    <div id="result_div_id"></div><!-- сюда результат -->
</form>
В #result_div_id:
PHP
1
Array ( [first_name] => asdf [last_name] => dfaf [phone] => afaf [email] => asfaf [area_id] => [locate] => afasf [inford] => afasf )
Кликните здесь для просмотра всего текста

ибо
PHP
1
print_r($_POST);

Где проблема?
0
0 / 0 / 1
Регистрация: 23.06.2014
Сообщений: 26
24.06.2014, 12:45  [ТС]
mihalken, добавил в htm только <div id="result_div_id"></div> и заменил:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$( '.feedback' ).on('click', function() {
    $.ajax({
        url: "submit.php",
        type: "POST",
        dataType: "html",
        data: $( "#former" ).serialize(),  
        success: function(response) {
            $( '#result_div_id' ).html( response ); 
        }, 
        error: function(response) {
            $( '#result_div_id' ).text( "Ошибка при отправке формы" );
        } 
     });
});
а файл submit.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
    include("db.php");
    
    if($_SERVER["REQUEST_METHOD"] == "POST")
    {
        $area_id = mysql_real_escape_string($_POST['area_id']);
        $service_type = mysql_real_escape_string($_POST['service_type']);
        $first_name = mysql_real_escape_string($_POST['first_name']);
        $last_name = mysql_real_escape_string($_POST['last_name']);
        $email = mysql_real_escape_string($_POST['email']);
        $phone = mysql_real_escape_string($_POST['phone']);
        $inford = mysql_real_escape_string($_POST['inford']);
        $locate = mysql_real_escape_string($_POST['locate']);
        
        if(strlen($area_id) > 0 && strlen($service_type) > 0 && strlen($first_name) > 0 && strlen($last_name) > 0 && strlen($email) > 0 && strlen($phone) > 0 && strlen($inford) > 0 && strlen($locate) > 0)
        {
            
            $result = mysql_query("
                                INSERT INTO tbl_customer (area_id,service_type,first_name,last_name,email,phone,inford,locate) 
                                VALUES(
                                    '" . $area_id . "',
                                    '" . $service_type . "',
                                    '" . iconv('utf-8','cp1251',$first_name) . "',
                                    '" . iconv('utf-8','cp1251',$last_name) . "',
                                    '" . $email . "',
                                    '" . $phone . "',
                                    '" . iconv('utf-8','cp1251',$inford) . "',
                                    '" . iconv('utf-8','cp1251',$locate) . "
                                ')");
            
            if ($result)
                echo iconv('cp1251','utf-8',"<h2>Заявка відправлена!</h2>");
            else
                echo iconv('cp1251','utf-8',"<h2>Помилка!</h2>(".mysql_error().")");
        }
        else
            echo iconv('cp1251','utf-8',"<h2>Заповніть усі строки!</h2>");
            
    }
а вот итог.
0
 Аватар для mihalken
97 / 97 / 74
Регистрация: 15.05.2014
Сообщений: 269
Записей в блоге: 2
24.06.2014, 12:54
dasser, что здесь:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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;">');
                    }
                });
            }
  })();
});
происходит?

P.S. /test/feedback/js/feedback.js 52 line

Добавлено через 2 минуты
HTML5
1
<input class="feedback btn btn-block btn-large btn-success" name="send" type="submit" value="Відправити замовлення!">
У вас опять submit. Я же в своем примере исправил:
HTML5
1
<input class="feedback btn btn-block btn-large btn-success" name="send" type="button" value="Відправити замовлення!" /> <!-- кнопка отправки формы (AJAX) -->
0
0 / 0 / 1
Регистрация: 23.06.2014
Сообщений: 26
24.06.2014, 13:11  [ТС]
mihalken, как я понял в рабочей версии (без соединения кода с общим на сайте) при проверке формы проверяет на присутсвие робота (так называемая защита от спама), после чего выдает ошибку связаную со спамом

Добавлено через 5 минут
Цитата Сообщение от mihalken Посмотреть сообщение
У вас опять submit. Я же в своем примере исправил
я пробую разные варанты, постоянно, в изначальной коде (рабочем) стоит submit. Прислушиваюсь к вам - поменял на button
0
 Аватар для mihalken
97 / 97 / 74
Регистрация: 15.05.2014
Сообщений: 269
Записей в блоге: 2
24.06.2014, 13:41
Лучший ответ Сообщение было отмечено dasser как решение

Решение

/test/feedback/js/feedback.js line 125
JavaScript
1
$.arcticmodal('close');
JavaScript
1
Uncaught TypeError: undefined is not a function
Цитата Сообщение от dasser Посмотреть сообщение
Web_Master, да но ГДЕ ? $.arcticmodal('close'); close ?
Может все таки вот так:
JavaScript
1
 $('#feedback-modal-box').arcticmodal('close');
?

Добавлено через 39 секунд
Но у меня по ходу форма отправилась, но только не закрылось.

Добавлено через 3 минуты
JavaScript
1
2
3
4
5
beforeSend: function() {
            //$(bt).val('');
            $(bt).prop("disabled", true);
            $(bt).addClass('loading');
        },
А вот здесь, вы блокируете кнопку от дабл клик. Т.е. beforeSend. Но когда success вы ее не включаете. Даже если форма закроется, то при следующем заказе услуги, кнопка будет не активна.

Добавлено через 3 минуты
А нет, сори. Вижу. Включаете обратно.
JavaScript
1
2
3
        $(bt).prop("disabled", false);
        $(bt).removeClass('loading');
        //$(bt).val(bvc);
Но! До этого момента у вас возникает ошибка, строка 125 выше о которой писал, и это часть кода не выполняется.

Добавлено через 3 минуты
Попробуйте исправить строку #125
JavaScript
1
$.arcticmodal('close');
на
JavaScript
1
$('#feedback-modal-box').arcticmodal('close');
?

P.S. Или хотя бы закомментируйте и посмотрите дальнейший результат.
1
0 / 0 / 1
Регистрация: 23.06.2014
Сообщений: 26
24.06.2014, 13:46  [ТС]
mihalken, заменил 125 стр. на " $('#feedback-modal-box').arcticmodal('close'); ". Да форма отправилась на ящик с даными "test@test.ru" через /feedback/index.php, но не срабатывает submit.php. И, да, двойного нажатия не допускает, может из-за него и блокирует?

Добавлено через 3 минуты
mihalken, после коммента на 125 вываливает ошибку "Uncaught TypeError: undefined is not a function " на 131 стр.
0
 Аватар для mihalken
97 / 97 / 74
Регистрация: 15.05.2014
Сообщений: 269
Записей в блоге: 2
24.06.2014, 13:52
Цитата Сообщение от dasser Посмотреть сообщение
после коммента на 125 вываливает ошибку "Uncaught TypeError: undefined is not a function " на 131 стр.
Т.е. идем дальше. Проблему закрытия модали вы найдете в доках articlmodal (это уже другая тема).

/test/feedback/js/feedback.js line 131
JavaScript
1
$.arcticmodal({content: m});
Та же корзинка, только пирожки с другой начинкой.

Добавлено через 1 минуту
Не работал с articmodal, и не совсем понимаю, что здесь задумано (#131).

Добавлено через 1 минуту
Цитата Сообщение от dasser Посмотреть сообщение
но не срабатывает submit.php
Т.е. как не срабатывает? Вы узнали e-mail который я указал в заказе. Значит пыха дышит?
1
0 / 0 / 1
Регистрация: 23.06.2014
Сообщений: 26
24.06.2014, 14:01  [ТС]
mihalken, закоментил 131 - форма отправлеться на почту (через /feedback/index.php), но на сервер (запись
PHP
1
2
$.ajax({
        url: submit.php,
не срабатывает как и раньше.
ДА, после комента 131 стр. форма отправляеться и обнуляеться, с возможностью вбить новые данные.
0
 Аватар для mihalken
97 / 97 / 74
Регистрация: 15.05.2014
Сообщений: 269
Записей в блоге: 2
24.06.2014, 14:53
Цитата Сообщение от dasser Посмотреть сообщение
не срабатывает как и раньше.
Так вам куда слать форму та?
сюда (1)
JavaScript
1
url: 'feedback/index.php',
или сюда (2)
JavaScript
1
 url: "submit.php",
?
В /test/feedback/js/feedback.js вы пишите (1), а тут вы указываете на (2).
0
0 / 0 / 1
Регистрация: 23.06.2014
Сообщений: 26
24.06.2014, 14:59  [ТС]
mihalken, и туда
PHP
1
url: 'feedback/index.php',
и сюда
PHP
1
url: submit.php,
в даний момент на почту отпрвляет через feedback/index.php.
Вот я и пытаюсь понять почему не хочет работать
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$( '.feedback' ).on('click', function() {
    $.ajax({
        url: "submit.php",
        type: "POST",
        dataType: "html",
        data: $( "#former" ).serialize(),  
        success: function(response) {
            $( '#result_div_id' ).html( response ); 
        }, 
        error: function(response) {
            $( '#result_div_id' ).text( "Ошибка при отправке формы" );
        } 
     });
});
которое исправлено на:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  function AjaxFormRequest(result_id,former,url) { 
            event.preventDefault();
            $( '.feedback' ).on('click', function() {
        $.ajax({
        url: submit.php,
        type: "POST",
        dataType: "html",
        data: $( "#former" ).serialize(),  
        success: function(response) {
            $( '#result_div_id' ).html( response ); 
        }, 
        error: function(response) {
            $( '#result_div_id' ).text( "Ошибка при отправке формы" );
        } 
     });
}); 
return false
 
        }
0
 Аватар для mihalken
97 / 97 / 74
Регистрация: 15.05.2014
Сообщений: 269
Записей в блоге: 2
24.06.2014, 15:18
Цитата Сообщение от dasser Посмотреть сообщение
которое исправлено на:
Вы мой код завернули в функцию?!
Цитата Сообщение от dasser Посмотреть сообщение
в даний момент на почту отпрвляет через feedback/index.php.
А что мешает вам перед отправкой почты, записать данные в базу? (соединить feedback/index.php и submit.php)

Добавлено через 1 минуту
Ну или после
1
0 / 0 / 1
Регистрация: 23.06.2014
Сообщений: 26
24.06.2014, 15:28  [ТС]
mihalken, пробовал и после и до, (если ДО - не обрабатываеться скрипт отправки на почту). Убрал обертку функции - 0 на масу.
0
 Аватар для mihalken
97 / 97 / 74
Регистрация: 15.05.2014
Сообщений: 269
Записей в блоге: 2
24.06.2014, 15:36
Лучший ответ Сообщение было отмечено dasser как решение

Решение

Цитата Сообщение от dasser Посмотреть сообщение
пробовал и после и до, (если ДО - не обрабатываеться скрипт отправки на почту)
Этот вопрос решается за пару секунд в соседнем разделе.
Цитата Сообщение от dasser Посмотреть сообщение
Убрал обертку функции - 0 на масу.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(function() {
    $( '.feedback' ).on('click', function() {
        $.ajax({
            url: "submit.php",
            type: "POST",
            dataType: "html",
            data: $( "#former" ).serialize(),  
            success: function(response) {
                $( '#result_div_id' ).html( response ); 
            }, 
            error: function(response) {
                $( '#result_div_id' ).text( "Ошибка при отправке формы" );
            } 
         });
    });
});
?
1
0 / 0 / 1
Регистрация: 23.06.2014
Сообщений: 26
24.06.2014, 17:40  [ТС]
mihalken,
Цитата Сообщение от mihalken Посмотреть сообщение
Этот вопрос решается за пару секунд в соседнем разделе.
тыкните носом )

Добавлено через 1 час 55 минут
ура разобрался! спс всем за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.06.2014, 17:40

Uncaught TypeError: $ is not a function
Не работает код: &lt;script type=&quot;text/javascript&quot;&gt; function reg() { $('#status').html('&lt;img...

Uncaught TypeError: $ is not a function
Вот мой HTML &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt;&lt;title&gt; Review Collection Settings &lt;/title&gt; &lt;script...

Uncaught TypeError: $(...).countDown is not a function
Доброго времени суток! проблема такая есть скрипт &lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt; ...

Uncaught TypeError: jQuery(.).on is not a function
&lt;script type=&quot;text/javascript&quot;&gt; jQuery(window).on('load', function() { new JCaption('img.caption'); }); &lt;/script&gt; ...

Uncaught TypeError: $allprice.replace is not a function
есть такой код: function myf(){ var $allprice=0; var $set= $('div.right-content input.minus'); var $firstLevel; var...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов • Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp • Смежный проект:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru