Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вставка текста в textarea в popup форме (https://javascript.ru/forum/misc/66409-vstavka-teksta-v-textarea-v-popup-forme.html)

KEMPZOR 14.12.2016 12:43

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

Вот этот код вызывает форму, подскажите пожалуйста как корректно вставить.
<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>

Dilettante_Pro 14.12.2016 13:20

KEMPZOR,
В вашем примере по ссылке скрипт выполняется при загрузке кода страницы до загрузки формы - отсюда и ошибка.
Прочтите (внимательно!) свой пост№1 и пост№2 от ksa и подумайте - почему у него работает, а у вас - нет.

laimas 14.12.2016 13:21

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

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

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

Что еще пояснять?

KEMPZOR 14.12.2016 13:50

Цитата:

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

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

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

Что еще пояснять?

<form>
<input name="d[2]" />
</form>

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


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

Dilettante_Pro 14.12.2016 14:03

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>

KEMPZOR 14.12.2016 16:09

Цитата:

Сообщение от Dilettante_Pro (Сообщение 437983)
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 окне не появляется.:(

Dilettante_Pro 14.12.2016 16:34

KEMPZOR,
Цитата:

Сообщение от KEMPZOR
Да, это работает на странице, вот только в popup окне не появляется.

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

KEMPZOR 14.12.2016 16:51

Цитата:

Сообщение от Dilettante_Pro (Сообщение 438010)
KEMPZOR,

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

Спасибо за подсказку, попробую проверить.

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

laimas 14.12.2016 16:54

Цитата:

Сообщение от KEMPZOR
name="d[2]" id="d[2]".

Зачем id="d[2]" если достаточно и name="d[2]"?

KEMPZOR 14.12.2016 17:07

Цитата:

Сообщение от laimas (Сообщение 438018)
Зачем id="d[2]" если достаточно и name="d[2]"?

Сайт на megagroup.ru, это всё у них с коробки.


Часовой пояс GMT +3, время: 10:13.