Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.09.2018, 23:35
Профессор
Отправить личное сообщение для giwuf Посмотреть профиль Найти все сообщения от giwuf
 
Регистрация: 16.05.2017
Сообщений: 163

Uncaught ReferenceError: function is not defined at HTMLInputElement.onclick?
Есть сайт на wordpress. Сделал отдельную страничку с калькулятором, где подключанию скрипты для получения величин, проверки и отправки данных.
Сейчас, в данном коде, который есть, при клике получаю ошибку:
Uncaught ReferenceError: getRadioCalc1 is not defined at HTMLInputElement.onclick

Код:
<?php get_header(); ?>

<script>
  jQuery.noConflict();
(function( $ ) {
    $(function() {

              function getInputCalc1(f1, f2, step) {
                $('#w-size-1').attr('checked', false);
                var f1Val = $('#' + f1).val();
                var f2Val = $('#' + f2).val();
                var rezult = 'Размеры: (ширина=' + f1Val + ' мм, высота=' + f2Val + ' мм)';
                rezCalc1[step + 1] = rezult;
                $('#rez1').val(rezCalc1.join(', '));
                return false;
              }

});
  })(jQuery);
</script>

<ul class="step-list">
   <li><input type="radio" class="radio" name="w-type" id="w-t-1" onclick="getRadioCalc1('Квартира',0);"><label for="w-t-1">Другое</label></li>
   <li>..</li>
   <li>..</li>
</ul>

<script>
(function( $ ) {
$(document).on('click', '.form-submit-355', function() {
});
})(jQuery);
</script>
<?php get_footer(); ?>
Если делать без обвертки
jQuery.noConflict();
(function( $ ) {
    $(function() {
});
})(jQuery);

то получаю ошибку изначально:
TypeError: $ is not a function when calling jQuery function

Как это можно исправить?
Ответить с цитированием
  #2 (permalink)  
Старый 11.09.2018, 00:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

giwuf,
назначить клик через on или сделать функцию без обёртки, заменив все $ на jQuery
Ответить с цитированием
  #3 (permalink)  
Старый 11.09.2018, 09:45
Профессор
Отправить личное сообщение для giwuf Посмотреть профиль Найти все сообщения от giwuf
 
Регистрация: 16.05.2017
Сообщений: 163

рони,
Делаю вот так, но все тоже самое..

<?php get_header(); ?>

<script>
jQuery.noConflict();

    jQuery(function() {

function getRadioCalc1(val, step) {
            if (step == 0) {
              rezCalc1[1] = val;
            } else {
              rezCalc1[step + 1] = val;
            }
            if (val == 'Створок: 1') {
              imgID = '1';
            }
            if (val == 'Створок: 2') {
              imgID = '2';
            }
            if (val == 'Створок: 3') {
              imgID = '3';
            }
            if (val == 'Балконный блок') {
              imgID = '4';
            }
            $('#countCounter1').attr('src', '<?php echo get_stylesheet_directory_uri() ?>/images/calc-sel-window-' + imgID + '.jpg');
            $('#rez1').val(rezCalc1.join(', '));
            return false;
          }
});
</script>

<ul class="step-list">
   <li><input type="radio" class="radio" name="w-type" id="w-t-1" onclick="getRadioCalc1('Квартира',0);"><label for="w-t-1">Другое</label></li>
   <li>..</li>
   <li>..</li>
</ul>

<script>
jQuery(document).on('click', '.form-submit-355', function() {

});
</script>
<?php get_footer(); ?>


А что означает "назначить клик через on", т.е. удалить из всех инпутов и назначить функцией? А если там разные параметры в нее передаются, то как?

И еще: интересно, что на тестовом локальном сервере все работает, а на реальном уже нет, правда там разные темы установлены, но тем не менее

Последний раз редактировалось giwuf, 11.09.2018 в 10:06.
Ответить с цитированием
  #4 (permalink)  
Старый 11.09.2018, 10:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от giwuf
Делаю вот так
нет не так
Сообщение от рони
заменив все $ на jQuery
<script>
  jQuery.noConflict();
              function getInputCalc1(f1, f2, step) {
                jQuery('#w-size-1').attr('checked', false);
                var f1Val = jQuery('#' + f1).val();
                var f2Val = jQuery('#' + f2).val();
                var rezult = 'Размеры: (ширина=' + f1Val + ' мм, высота=' + f2Val + ' мм)';
                rezCalc1[step + 1] = rezult;
                jQuery('#rez1').val(rezCalc1.join(', '));
                return false;
              }

;
 
</script>

Последний раз редактировалось рони, 11.09.2018 в 10:41.
Ответить с цитированием
  #5 (permalink)  
Старый 11.09.2018, 10:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от giwuf
т.е. удалить из всех инпутов и назначить функцией?
да
Сообщение от giwuf
А если там разные параметры в нее передаются, то как?
параметры оставить в инпуте типа data-calc="['Квартира',0]"
Ответить с цитированием
  #6 (permalink)  
Старый 11.09.2018, 10:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
заменив все $ на jQuery
Не обязательно.
Ответить с цитированием
  #7 (permalink)  
Старый 11.09.2018, 11:13
Профессор
Отправить личное сообщение для giwuf Посмотреть профиль Найти все сообщения от giwuf
 
Регистрация: 16.05.2017
Сообщений: 163

рони,
спасибо большое! Получилось!

Цитата:
Не обязательно.
laimas,
а как по другому
Ответить с цитированием
  #8 (permalink)  
Старый 11.09.2018, 11:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от giwuf
а как по другому
Вот так.
Ответить с цитированием
  #9 (permalink)  
Старый 11.09.2018, 11:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от laimas
Вот так.
посмотри пожалуйста первый пост.
Ответить с цитированием
  #10 (permalink)  
Старый 11.09.2018, 11:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
посмотри пожалуйста первый пост
Да, неудачный ВВ тег выбран.

Может это следствие неудачного месторасположения объявления или какие-то сопутствующие проблемы? Не скажу чтобы часто это приходилось делать, но когда приходилось проблем не было.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Uncaught ReferenceError: "Наименование товара" is not defined _marisha Общие вопросы Javascript 3 24.07.2018 10:40
Uncaught ReferenceError: GoTo is not defined at HTMLSpanElement.onclick Leonhard Общие вопросы Javascript 10 27.08.2017 15:24
Uncaught ReferenceError: $ is not defined LeonidPT AJAX и COMET 2 20.04.2016 12:43
Uncaught ReferenceError: Class is not defined igshul Javascript под браузер 3 24.04.2012 11:49
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34