Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.05.2016, 04:26
Новичок на форуме
Отправить личное сообщение для Shur Посмотреть профиль Найти все сообщения от Shur
 
Регистрация: 24.05.2016
Сообщений: 4

Динамическое изменение selected через jQuery
Есть такой иерархический DropDown.

<select id="estimateA">
    <option value="1">Test</option>
    <option value="2">\u00a0_Test1</option>
    <option value="3">\u00a0\u00a0_Test1_1</option>
    <option value="4">\u00a0_Test2</option>
    <option value="5">\u00a0\u00a0_Test2_1</option>
    <option value="6">\u00a0\u00a0_Test2_2</option>
</select>


Подскажите, как сделать так чтобы на выбранном элементе не было лишних пробелов?

Сейчас делаю следующим образом:

$('#estimateA').change(function () { 
    //возвращаю элементам неразрывные пробелы
    $("#estimateA option").each( 
    function paintPackageTable() {
        var $cell = $(this);
        $cell.text($cell.text().replace(/  /g, '\u00a0\u00a0'));
        }
    );
    //возвращаю элементам неразрывные пробелы
    var $cell1 = $("#estimateA option:selected");
    $cell.text($cell1.text().replace(/\u00a0\u00a0/g, '  '));
});


Что можно сделать, чтобы в выпадающем списке была видна иерархия, а при выборе и отображении в "свернутом" состоянии - не было лишних пробелов?
Ответить с цитированием
  #2 (permalink)  
Старый 24.05.2016, 07:49
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Shur,
В value писать не 1,2,....
А текст без пробелов. И пользоваться им при выборе.
Или добавить для этого дополнительное свойство data-text

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

Shur,
Сообщение от Shur
Что можно сделать, чтобы в выпадающем списке была видна иерархия,
видна но кроме выбранного пункта ...
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

 </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

  <script>
 $(function() {
    $("#estimateA").on("change", function(event) {
        $("#estimateA option").each(function() {
            var $cell = $(this);
            $cell.text($cell.text().replace(/\u200B/g, "\u2007"))
        });
        var $cell = $("#estimateA option:selected");
        $cell.text($cell.text().replace(/\u2007/g, "\u200b"))
    })
});
  </script>
</head>

<body>

<select id="estimateA">
    <option value="1">Test</option>
    <option value="2">&#8199;_Test1</option>
    <option value="3">&#8199;&#8199;_Test1_1</option>
    <option value="4">&#8199;_Test2</option>
    <option value="5">&#8199;&#8199;_Test2_1</option>
    <option value="6">&#8199;&#8199;_Test2_2</option>
</select>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 25.05.2016, 04:30
Новичок на форуме
Отправить личное сообщение для Shur Посмотреть профиль Найти все сообщения от Shur
 
Регистрация: 24.05.2016
Сообщений: 4

Сообщение от Dilettante_Pro Посмотреть сообщение
Или добавить для этого дополнительное свойство data-text
можно небольшой пример? С "data-text"?

Последний раз редактировалось Shur, 25.05.2016 в 04:40.
Ответить с цитированием
  #5 (permalink)  
Старый 25.05.2016, 04:39
Новичок на форуме
Отправить личное сообщение для Shur Посмотреть профиль Найти все сообщения от Shur
 
Регистрация: 24.05.2016
Сообщений: 4

Сообщение от рони
видна но кроме выбранного пункта ...
Угу, так уже догадался. Временное решение. Думал еще возвращать пробелы по клику на select, но что-то не получилось..
Ответить с цитированием
  #6 (permalink)  
Старый 25.05.2016, 12:19
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от Shur Посмотреть сообщение
можно небольшой пример? С "data-text"?
Shur,
Я имел в виду не столько отображение, сколько дальнейшее использование выбранного значения
<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Тег SELECT</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
 <script type="text/javascript">
     $(function () {
         $("#estimateA").on("change", function (event) {
             alert("Выбрано:" + $("#estimateA option:selected").attr('data-text'));
         });
     })
   </script>
</head>
 <body> 
   <select id="estimateA">
    <option value="1" data-text="Test">Test</option>
    <option value="2" data-text="_Test1"> _Test1</option>
    <option value="3" data-text="_Test1_1">  _Test1_1</option>
    <option value="4" data-text="_Test2"> _Test2</option>
    <option value="5" data-text="_Test2_1">  _Test2_1</option>
    <option value="6" data-text="_Test2_2">  _Test2_2</option>
   </select>
 </body>
</html>

При этом заметил, что в Хроме и Опере выбранное значение отображается без пробелов без каких-либо дополнительных манипуляций.
В ИЕ и ФФ - с пробелами

Последний раз редактировалось Dilettante_Pro, 25.05.2016 в 12:21.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД JSON вывод через jQuery Infinity178 jQuery 13 09.03.2015 21:32
jQuery Изменение цвета дочерних элементов libinstyle Общие вопросы Javascript 2 24.03.2010 04:46
jQuery, jsTree - обновление дерева через ajax extremum.func jQuery 2 09.11.2009 14:48
подгрузка файлов через jQuery imdogma jQuery 4 05.05.2009 21:46
Динамическое изменение <input text> baal1988 Events/DOM/Window 4 24.08.2008 17:17