Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Исчезает значение в input в Попапе (https://javascript.ru/forum/misc/69574-ischezaet-znachenie-v-input-v-popape.html)

KolaKola 04.07.2017 08:07

Исчезает значение в input в Попапе
 
Здравствуйте! Опишу проблему.
Есть страница, на ней есть кнопка. При нажатии на эту кнопку открывается попап с готовыми input, так же на этой кнопке пытаюсь занести данные в эти input путём:
var windowAdd = window.open("window_add_book.html","Ред",paramsPopup);
        
        windowAdd.document.getElementById('naimenovanie').value = 500;

но значение появляются и сразу пропадают. Помогите, пожалуйста, не пойму в чем дело.

Dilettante_Pro 04.07.2017 10:31

KolaKola,
Попробуйте так:
var windowAdd = window.open("window_add_book.html","Ред",paramsPopup);

windowAdd.onload = function() {
   windowAdd.document.getElementById('naimenovanie').value = 500;
};

KolaKola 04.07.2017 10:49

Спасибо за ответ! Но теперь вообще не выводит :(

вот блок полностью
$('.change-book').on('click',function () {
        var windowAdd = window.open("window_add_book.html","Ред",paramsPopup);

        window.onload = function(){
            windowAdd.document.getElementById('naimenovanie').value = 500;
        };

    });

Dilettante_Pro 04.07.2017 11:35

KolaKola,
Сравните мой код и ваш

KolaKola 04.07.2017 11:41

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

KolaKola 04.07.2017 15:21

Появился еще вопрос. Как мне из дочернего элемента, добраться до элемента который находится в таблице, которая в свою очередь находится в родительском элементе, вот, что пробовал:
window.parent.$('#book-table').find('tr').eq(numberTR).find('td').eq(0).find('h2').innerHTML

window.opener.$('#book-table').find('tr').eq(numberTR).find('td').eq(0).find('h2').innerHTML

$('#book-table',window.opener.document).find('tr').eq(numberTR).find('td').eq(0).find('h2').innerHTML

j0hnik 04.07.2017 15:46

Цитата:

Сообщение от KolaKola (Сообщение 457533)
Появился еще вопрос. Как мне из дочернего элемента, добраться до элемента который находится в таблице, которая в свою очередь находится в родительском элементе:

$('el').parent().parent().children('table').children('.selector');

только селекторы свои укажите.

KolaKola 04.07.2017 15:56

Извините, но я не понял :(

рони 04.07.2017 15:58

j0hnik,
ему до родительского окна достучатся надо.
KolaKola,
нет в jquery innerHTML есть html()

KolaKola 04.07.2017 17:13

Спасибо! Подошло:
window.opener.$('#book-table').find('tr').eq(numberTR).find('td').eq(0).find('h2').html();

KolaKola 05.07.2017 10:38

Еще вопросик появился. добавляю в существующую таблицу строку, путём:
window.opener.$('#book-table').prepend('<tr><td>' +
                                            '<img src ="' + masNewbook[3] + '" class="oblojka">'+
                                            '<div class="opisanie">' +
                                                '<h2>'+ masNewbook[0] +'</h2>'+
                                                '<p>'+ masNewbook[1] +'</p>' +
                                                '<h5>'+ masNewbook[2] + '</h5>'+
                                            '</div>'+
                                            '<div class="change-del-block">'+
                                                '<button class="btn change-book">Редактировать</button>'+
                                                '<button class="btn del-book">Удалить</button>' +
                                            '</div>'    +
                                            '</td></tr>');


Строка с данными добавляется, но 2 недочета:
1. Стили для кнопок "Удалить" и "Редактировать" не до конца применяются(одна кнопка не находится выше другой).
2. При нажатии на кнопки не совершаются никакие действия(с уже заранее имеющимися строками в таблице работают корректно).
Можно ли как нибудь это исправить?

P.S.: При обновлении страницы на которой находится таблица, таблица возвращается в исходное состояние

рони 05.07.2017 10:43

KolaKola,
надо смотреть скрипт который инициализирует таблицу и либо его запускать, если предусмотрено добавление, либо изменять изначально этот скрипт, чтоб он видел новые строки.

KolaKola 05.07.2017 10:57

А как это сделать? вот код кнопки редактировать:
$('.change-book').on('click',function () {
       numberTR = $(this).closest('tr').index();

        var windowAdd = window.open("window_change_book.html","Ред",paramsPopup);
        masData = [];


        var nameBook = $('#book-table').find('tr').eq(numberTR).find('td').eq(0).find('h2').html();
        var author = $('#book-table').find('tr').eq(numberTR).find('td').eq(0).find('p').html();
        var year = $('#book-table').find('tr').eq(numberTR).find('td').eq(0).find('h5').html();
        var srcImg = $('#book-table').find('tr').eq(numberTR).find('td').eq(0).find('img').attr('src');

        masData.push(nameBook);
        masData.push(author);
        masData.push(year);
        masData.push(srcImg);
        
        windowAdd.onload = function () {
            windowAdd.document.getElementById('naimenovanie2').value = masData[0];
            windowAdd.document.getElementById('avtor2').value = masData[1];
            windowAdd.document.getElementById('year2').value = masData[2];
            windowAdd.document.getElementById('IMAG2').value = masData[3];
            windowAdd.document.getElementById('indexX').value = numberTR;
        };
    });

а вот кнопки удалить:
$('.del-book').on('click',function () {
        $(this).closest('tr').remove();
    });

рони 05.07.2017 11:40

KolaKola,
изменить клики на
$('#book-table').on('click', '.change-book', function () {})
$('#book-table').on('click', '.del-book', function () {})

KolaKola 05.07.2017 12:00

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


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