Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.09.2017, 16:40
Аватар для CTABP
Новичок на форуме
Отправить личное сообщение для CTABP Посмотреть профиль Найти все сообщения от CTABP
 
Регистрация: 14.09.2017
Сообщений: 2

Не корретная работа выбора элемента в динамическом <select>
Коллеги, добрый день!

Прошу помощи в решении вопроса корретной работы при выборе элемента в динамическом <select>.
Пишу, на Java, поэтому многих вопросов по JavaScript просто не понимаю.
У меня на jsp странице есть таблица 'plan-table', часть столбцов таблицы нередактируемая...
По клику на редактируемой ячейке, в этой ячейке должен появляться выпадающий список сокращённых названий(абревиатур).
текст в ячейке таблицы принимает значение выбранного элемента из списка. Это как хотелось бы, что бы так работало...

На деле, выпадающий список по клику появляется, но выбрать элемент мышкой и присвоить это значение ячейке не получается.
Правда, можно кликнуть по ячейке до появления кнопки выпадения списка и стрелками вверх вниз осуществить выбор элемента из списка и присвоение его ячейке.
Вот код который так работает. Подскажите, что нужно подправить для корректной работы выбора элемента.


<script language="javascript">
    $(function () {
        $('table#plan-table td').click(function (e) {
            var t = e.target || e.srcElement;
            var elm_name = t.tagName.toLowerCase();

            if (elm_name == 'input') {return false;}

            if (this.className == 'info') {return false;}

            var code = '<select name="object" id="edit"><c:forEach items="${listAbreviatures}" var="listAbreviature"><option>${listAbreviature}</option></c:forEach></select>';

            $(this).empty().append(code);
            $('#edit').focus();

            $('#edit').blur(function () {
                var val = $("#edit :selected").val();
                $(this).parent().empty().html(val);

            });
        });
        $(window).keydown(function (event) {
            if (event.keyCode == 13) {
                $('#edit').blur();
            }
        });
    });
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 15.09.2017, 18:49
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

CTABP,
Если убрать очистку, то видно, что происходит - по каждому клику создается новый селект
<table id='plan-table'>
   <tr>
       <td><input></td>
       <td><div style='border:1px solid grey'>Здесь надо менять</div></td>
       <td><input></td>
   </tr>
</table>
<script src = "https://code.jquery.com/jquery-1.8.3.js"></script>
<script language="javascript">
    $(function () {
        $('table#plan-table td').click(function (e) {
            var t = e.target || e.srcElement;
            var elm_name = t.tagName.toLowerCase();

            if (elm_name == 'input') {return false;}

            if (this.className == 'info') {return false;}

            var code = '<select name="object" id="edit"><option value="первый">первый</option><option value="второй">второй</option><option value="третий">третий</option></select>';

            $(this).append(code);
            $('#edit').focus();

            $('#edit').blur(function () {
                var val = $("#edit :selected").val();
                $(this).parent().empty().html(val);

            });
        });
        $(window).keydown(function (event) {
            if (event.keyCode == 13) {
                $('#edit').blur();
            }
        });
    });
</script>

Последний раз редактировалось Dilettante_Pro, 15.09.2017 в 18:52.
Ответить с цитированием
  #3 (permalink)  
Старый 15.09.2017, 19:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

CTABP,
$('#edit').focus()*!*.click(function(e) {e.stopPropagation()});*/!*
Ответить с цитированием
  #4 (permalink)  
Старый 19.09.2017, 15:24
Аватар для CTABP
Новичок на форуме
Отправить личное сообщение для CTABP Посмотреть профиль Найти все сообщения от CTABP
 
Регистрация: 14.09.2017
Сообщений: 2

Dilettante_Pro и рони, большое вам спасибо очень помогли
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто-нибудь встречал подобную библиотеку для элемента множественного выбора? cyber_bober Элементы интерфейса 2 24.03.2015 16:41
Работа с css классом элемента при scroll Bravo Events/DOM/Window 10 23.05.2014 16:18
Форма выбора <select>. OdessaNa (X)HTML/CSS 2 21.10.2013 20:32
Работа с <select> fAmOus Элементы интерфейса 4 17.09.2012 12:05
Добавление элемента и работа с ним nvbn Events/DOM/Window 13 07.07.2008 19:07