Динамическое изменение 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, ' '));
});
Что можно сделать, чтобы в выпадающем списке была видна иерархия, а при выборе и отображении в "свернутом" состоянии - не было лишних пробелов? |
Shur,
В value писать не 1,2,.... А текст без пробелов. И пользоваться им при выборе. Или добавить для этого дополнительное свойство data-text |
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"> _Test1</option>
<option value="3">  _Test1_1</option>
<option value="4"> _Test2</option>
<option value="5">  _Test2_1</option>
<option value="6">  _Test2_2</option>
</select>
</body>
</html>
|
Цитата:
|
Цитата:
|
Цитата:
Я имел в виду не столько отображение, сколько дальнейшее использование выбранного значения
<!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>
При этом заметил, что в Хроме и Опере выбранное значение отображается без пробелов без каких-либо дополнительных манипуляций. В ИЕ и ФФ - с пробелами |
| Часовой пояс GMT +3, время: 12:03. |