Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 14.12.2016, 12:43
Аспирант
Отправить личное сообщение для KEMPZOR Посмотреть профиль Найти все сообщения от KEMPZOR
 
Регистрация: 13.12.2016
Сообщений: 85

Извиняюсь за непонимание, только недавно начал постигать.

Вот этот код вызывает форму, подскажите пожалуйста как корректно вставить.
<script type="text/javascript">
    $(function() {
    	
 	//Form
    var $form_link = $('.form-button'),
        $form = $('#form_product');

    $form_link.click(function(event) {
    	
        event.preventDefault();
        
        if ($form.hasClass('opened')){
            $form.removeClass('opened');
            
            if (/iPod|iPad|iPhone/i.test(navigator.userAgent)) {
                $('html').removeClass('overflowHidden');
            } else {
                $(document.documentElement).removeClass('overflowHidden');
            }
        } else {
            $form.addClass('opened');

            if (/iPod|iPad|iPhone/i.test(navigator.userAgent)) {
                $('html').addClass('overflowHidden');
                $('body').addClass('overflowHidden');
            } else {
                $(document.documentElement).addClass('overflowHidden');
            }
        }

        $('.popup-form').s3IncludeForm('/forma' + '?form', function(){
	 	  if($('input[type="text"]').val() == '') {
	 		$('input[type="text"]').parent().find('.placeholder').show();
	   	  }
	    });
        return false; 

    });

    $(".close-reveal-modal").on('click touchstart', function(event) {
      	$form.removeClass('opened');
    });

});
  </script>

Последний раз редактировалось KEMPZOR, 11.01.2018 в 11:23.
Ответить с цитированием
  #12 (permalink)  
Старый 14.12.2016, 13:20
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

KEMPZOR,
В вашем примере по ссылке скрипт выполняется при загрузке кода страницы до загрузки формы - отсюда и ошибка.
Прочтите (внимательно!) свой пост№1 и пост№2 от ksa и подумайте - почему у него работает, а у вас - нет.
Ответить с цитированием
  #13 (permalink)  
Старый 14.12.2016, 13:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Вы задаете один вопрос с описанием проблемы, а код показываете размером с портянку.

Еще раз о том, о чем была суть вопроса - невозможно обратиться к объекту, если в значении селектора по которому производится поиск присутствуют квадратные скобки.

Как это можно вылечить используя DOM и было показано. У вас код выше использует jQuey, а значит в нем достучаться до поля с именем d[2] можно так - $('[name="d\\[2\\]"]').val('значение')

Что еще пояснять?
Ответить с цитированием
  #14 (permalink)  
Старый 14.12.2016, 13:50
Аспирант
Отправить личное сообщение для KEMPZOR Посмотреть профиль Найти все сообщения от KEMPZOR
 
Регистрация: 13.12.2016
Сообщений: 85

Сообщение от laimas Посмотреть сообщение
Вы задаете один вопрос с описанием проблемы, а код показываете размером с портянку.

Еще раз о том, о чем была суть вопроса - невозможно обратиться к объекту, если в значении селектора по которому производится поиск присутствуют квадратные скобки.

Как это можно вылечить используя DOM и было показано. У вас код выше использует jQuey, а значит в нем достучаться до поля с именем d[2] можно так - $('[name="d\\[2\\]"]').val('значение')

Что еще пояснять?
<form>
<input name="d[2]" />
</form>

<script type='text/javascript'>
    $('[name="d\\[2\\]"]').val('значение')
</script>


Вот такая конструкция работает. Но вот если по кнопке, то значение как бы видно на долю секунды и потом оно исчезает.
Ответить с цитированием
  #15 (permalink)  
Старый 14.12.2016, 14:03
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

KEMPZOR,
Сообщение от KEMPZOR
Но вот если по кнопке, то значение как бы видно на долю секунды и потом оно исчезает.
<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $(function () {

            $('.form-button').on('click', function () {
                   $("#d\\[2\\]").val("Johnny Bravo");
            });
        })
    </script>
</head>
<body>
    <a class="form-button" href="#">КНОПКА</a>
    <textarea name="d[2]" id="d[2]" required=""></textarea>
</body>
</html>

Последний раз редактировалось Dilettante_Pro, 14.12.2016 в 14:13.
Ответить с цитированием
  #16 (permalink)  
Старый 14.12.2016, 16:09
Аспирант
Отправить личное сообщение для KEMPZOR Посмотреть профиль Найти все сообщения от KEMPZOR
 
Регистрация: 13.12.2016
Сообщений: 85

Сообщение от Dilettante_Pro Посмотреть сообщение
KEMPZOR,


<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $(function () {

            $('.form-button').on('click', function () {
                   $("#d\\[2\\]").val("Johnny Bravo");
            });
        })
    </script>
</head>
<body>
    <a class="form-button" href="#">КНОПКА</a>
    <textarea name="d[2]" id="d[2]" required=""></textarea>
</body>
</html>
Да, это работает на странице, вот только в popup окне не появляется.
Ответить с цитированием
  #17 (permalink)  
Старый 14.12.2016, 16:34
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

KEMPZOR,
Сообщение от KEMPZOR
Да, это работает на странице, вот только в popup окне не появляется.
тут весь вопрос в том, где и когда появляется у вас это поле textarea name="d[2]" id="d[2]". И запись в него должна стоять после этого момента.
М.б. перед return false (строка 36 в пост#11)
Ответить с цитированием
  #18 (permalink)  
Старый 14.12.2016, 16:51
Аспирант
Отправить личное сообщение для KEMPZOR Посмотреть профиль Найти все сообщения от KEMPZOR
 
Регистрация: 13.12.2016
Сообщений: 85

Сообщение от Dilettante_Pro Посмотреть сообщение
KEMPZOR,

тут весь вопрос в том, где и когда появляется у вас это поле textarea name="d[2]" id="d[2]". И запись в него должна стоять после этого момента.
М.б. перед return false (строка 36 в пост#11)
Спасибо за подсказку, попробую проверить.

Отлично, заработало, низкий вам поклон!

Последний раз редактировалось KEMPZOR, 14.12.2016 в 16:59.
Ответить с цитированием
  #19 (permalink)  
Старый 14.12.2016, 16:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от KEMPZOR
name="d[2]" id="d[2]".
Зачем id="d[2]" если достаточно и name="d[2]"?
Ответить с цитированием
  #20 (permalink)  
Старый 14.12.2016, 17:07
Аспирант
Отправить личное сообщение для KEMPZOR Посмотреть профиль Найти все сообщения от KEMPZOR
 
Регистрация: 13.12.2016
Сообщений: 85

Сообщение от laimas Посмотреть сообщение
Зачем id="d[2]" если достаточно и name="d[2]"?
Сайт на megagroup.ru, это всё у них с коробки.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка текста в textarea по клику после определенных слов x-miller-x Общие вопросы Javascript 0 05.09.2012 07:27
Вставка текста в textarea в положения курсора flytracer jQuery 3 24.02.2012 15:00
Вставка данных в textarea из модального окна (для Markitup) Roman Koff jQuery 0 26.08.2010 23:21
Подсчет "реальной" длины текста в textarea modernx Элементы интерфейса 22 06.06.2010 18:30
Вставка текста в textarea после выбора select option modelisto Общие вопросы Javascript 2 14.10.2009 19:27