Javascript.RU

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

Сообщение от booratina
Это кнопка редактировать строчку
То есть имя класса Вестовара, это необходимость? Тихий ужас. )

Сообщение от booratina
здесь .text(); не уместен т.к это checkbox Как правильно его получить?
Я же написал как - el.eq(2).find('input').val(). В общем то, если щелкаем по элементу А, находящуюся в строке таблицы и в ней же нужно получить нечто, то и имя класса не требуется - $(this).closest('tr').find('td'), и достаточно.

Но, в таблице то кроме этих кнопок есть и та, что не относится по назначению к этим - btn .btn-primary. Кстати, точки в имени класса в таком виде быть не должно.

И вообще, если из одного копируется в другое, то это скорее бесполезное занятие.
Ответить с цитированием
  #12 (permalink)  
Старый 08.05.2018, 21:22
Интересующийся
Отправить личное сообщение для booratina Посмотреть профиль Найти все сообщения от booratina
 
Регистрация: 06.05.2018
Сообщений: 23

Сообщение от laimas Посмотреть сообщение
Я же написал как - el.eq(2).find('input').val().
function sendValuesToModal() {

     
        var el = $(this).closest('.shown').find('td');
        var nameSize = el.eq(0).text();
        var kitchenSize = el.eq(1).text();
        var defaultSize = el.eq(2).find('input').val() //вроде так сделал

        alert(defaultSize);

         $('#editValues').modal('show');

        $("input[name=nameSize]").val(nameSize);
        $("input[name=kitchenSize]").val(kitchenSize);
        $("input[name=defaultSize]").val(defaultSize);
   
}
Изображения:
Тип файла: jpg Снимок1.JPG (13.3 Кб, 3 просмотров)
Тип файла: jpg Снимок2.JPG (9.6 Кб, 2 просмотров)
Тип файла: jpg Снимок3.JPG (30.2 Кб, 2 просмотров)
Ответить с цитированием
  #13 (permalink)  
Старый 08.05.2018, 22:12
Интересующийся
Отправить личное сообщение для booratina Посмотреть профиль Найти все сообщения от booratina
 
Регистрация: 06.05.2018
Сообщений: 23

Сделал так
var defaultSize = el.eq(2).find('input').prop('checked');

получается получить true/false НО в модалке не устанавливается
$("input[name=defaultSize]").val(defaultSize);
Ответить с цитированием
  #14 (permalink)  
Старый 08.05.2018, 22:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если нужно состояние флажка установить, то $("input[name=defaultSize]").prop('checked', defaultSize);

Какую задачу преследует скрипт?
Ответить с цитированием
  #15 (permalink)  
Старый 09.05.2018, 07:12
Интересующийся
Отправить личное сообщение для booratina Посмотреть профиль Найти все сообщения от booratina
 
Регистрация: 06.05.2018
Сообщений: 23

скрипт берет состояние флажка у таблицы и передает модалке, которая отправит данные на другой скрипт где с помощью ajax отправим данные на сервер чтоб обновить (отредактировать, изменить) данные в БД!

Одним словом мы выполняем редактирование строчки!
Ответить с цитированием
  #16 (permalink)  
Старый 09.05.2018, 07:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если ваша страница изолированная и в ней кроме как в таблице больше нет элементов A, тогда можно было бы закрыть глаза на это ('a').on('click', function(). Но это ведь не так, а следовательно это чревато чем?

Если с сервера запрашивают данные для редактирования, то это уже должна быть форма, копировать нечто в какую-то левую форму нет никакой необходимости. А флажок (его состояние), который в общем то не передается на сервер если не выбран, копировать в другой, это полнейшая глупость.

Ну и судя по таблице такие данные вполне может обновлять группой, то есть какого-то посредника не треубется.
Ответить с цитированием
  #17 (permalink)  
Старый 09.05.2018, 08:40
Интересующийся
Отправить личное сообщение для booratina Посмотреть профиль Найти все сообщения от booratina
 
Регистрация: 06.05.2018
Сообщений: 23

Сообщение от laimas Посмотреть сообщение
Если ваша страница изолированная и в ней кроме как в таблице больше нет элементов A, тогда можно было бы закрыть глаза на это ('a').on('click', function(). Но это ведь не так, а следовательно это чревато чем?
без этой строчки
$('a').on('click', function() {
Я получается буду кликать на всю строку!

Сообщение от laimas Посмотреть сообщение
Если с сервера запрашивают данные для редактирования, то это уже должна быть форма, копировать нечто в какую-то левую форму нет никакой необходимости. А флажок (его состояние), который в общем то не передается на сервер если не выбран, копировать в другой, это полнейшая глупость.
Чтоб формой это сделать я не мог придумать как получить в форму данные нужной строки

Сообщение от laimas Посмотреть сообщение
Ну и судя по таблице такие данные вполне может обновлять группой, то есть какого-то посредника не треубется.
к сожалению я только знакомлюсь с js и как обновить группой не понимаю пока

Как показано на картинке мне по клику на карандашек нужно вызвать модальное окно в котором по хорошем должна быть форма. Но я не пойму как в нее собрать нужные мне данные.
Изображения:
Тип файла: jpg Снимок2.JPG (9.6 Кб, 1 просмотров)

Последний раз редактировалось booratina, 09.05.2018 в 08:46.
Ответить с цитированием
  #18 (permalink)  
Старый 09.05.2018, 09:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от booratina
без этой строчки
$('a').on('click', function() {
Я получается буду кликать на всю строку!
Здесь проблема не в теге А как таковом, а в селекторе - селектор должен указывать только на теги теги А, которые принадлежат таблице, и кроме имеющего имя класса editValues. Иначе это обработка щелчков по всем имеющимся на странице тегах А.

Кроме того, у вас многократно устанавливается этот обработчик в функции sendValuesToModal, а нужно устанавливать единожды или делегировать обработку родителю.

Кроме этого сама логика "открыть окно одной кнопкой, щелкнуть и скопировать множеством" имеет существенный недостаток - таблица открыта и щелкнуть можно в любой момент, и совсем не по кнопке "открыть окно". А это уже баг. А по разумному, в таком случае, кнопки "открыть окно" вообще не должно быть, оно должно открываться по тегам А, которые и инициализируют копирование из выбранной строки.

Но в общем то этого и не требуется, каких-то окон. Достаточно оформить эту таблицу уже содержащую элементы формы. Если объем данных большой, типы данных разнообразные, тогда эти данные редактируются индивидуально. Но если это к промеру именование, цена, какой-то флажок, то можно изменить/выбрать во множестве полей и отправить форму. От JS тут ничего в общем и не потребуется, кроме если форма отправляется асинхронным запросом. Вся работа ляжет на сервер, а для него обновить данные множества записей в таблице не является проблемой.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как получить innerHTML при клике prope Общие вопросы Javascript 3 10.01.2014 17:13
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как вывести дату, чтобы не повторять скрипт пару раз xXapokalypsesXx Общие вопросы Javascript 10 27.06.2013 13:43
Как получить цвет пиксела на картинке в заданых кординатах? Kvark jQuery 7 07.06.2013 14:22