Форум программистов, компьютерный форум, киберфорум
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. Показов 11810. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru