Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Назначить атрибут selected если выбран option (https://javascript.ru/forum/misc/54476-naznachit-atribut-selected-esli-vybran-option.html)

Dealaxer 18.03.2015 21:33

Назначить атрибут selected если выбран option
 
Народ!
Как назначить атрибут selected="", если выбран абсолютно любой option, а у других отсутствует?

рони 18.03.2015 21:41

Dealaxer,
кому назначить и кто такие другие ?

Dealaxer 18.03.2015 21:53

Цитата:

Сообщение от рони (Сообщение 361971)
Dealaxer,
кому назначить и кто такие другие ?

Допустим есть:
<select name="status" id="status">
    <option>111</option>
    <option>222</option>
    <option>333</option>
</select>


В этом select может быть любое количество option, и если из списка выбрать option 111 то ему присвоить/назначить атрибут selected="", а у других option удалить атрибут selected="", если выбрать пункт 222 то ему присвоить этот атрибут, а у других option удалить и т.д..

laimas 18.03.2015 21:56

Зачем? Это и без вашего участия делается.

Dealaxer 18.03.2015 22:02

Цитата:

Сообщение от laimas (Сообщение 361980)
Зачем? Это и без вашего участия делается.

Необходимо для переключения. Не делается, если бы делалось не спрашивал бы.

laimas 18.03.2015 22:07

Это как так? Щелчок по опции списка и делает ее выбранной, а значение списка будет равно значению выбранной опции. Что показать пример который отображает индекс выбранной опции для доказательства работы?

Переключения чего?

Dealaxer 18.03.2015 22:12

Цитата:

Сообщение от laimas (Сообщение 361982)
Это как так? Щелчок по опции списка и делает ее выбранной, а значение списка будет равно значению выбранной опции. Что показать пример который отображает индекс выбранной опции для доказательства работы?

Переключения чего?

Очень просто, должно в коде отображаться РЕАЛЬНО если выбрана опция:
<option selected="">111</option>

А не отображается, выбрали мы 333, а в коде не добавился selected="".

Для переключения данных на странице, точнее обновления страницы, и для этого в коде должен быть отображен атрибут у выбранной опции.

Покажите пример если несложно.

laimas 18.03.2015 22:28

<select onchange="alert(this.selectedIndex)">
    <option>111</option>
    <option>222</option>
    <option>333</option>
</select>


Что вам еще надо? Достаточно проверить какая опция выбрана, если от нее что-то зависит, а selected=true без вашего участия будет установелно.

Dealaxer 18.03.2015 22:32

Цитата:

Сообщение от laimas (Сообщение 361985)
<select onchange="alert(this.selectedIndex)">
    <option>111</option>
    <option>222</option>
    <option>333</option>
</select>


Что вам еще надо? Достаточно проверить какая опция выбрана, если от нее что-то зависит, а selected=true без вашего участия будет установелно.

Вот смотрю я ваш пример в firebug'е, и при переключении опций, ну не вижу я добавление атрибута selected="" к опции. Не работает Ваш пример, Должно быть реальное добавление атрибута к опции в коде.

laimas 18.03.2015 22:38

Ну елки палки, да нахрена вам он нужен?

<input type="checkbox">

Щелкайте, смотрите, и тоже не видно checked, но кошка то в черной комнате есть! Проверяйте свойства и не морочьте себе голову. В контексте того чего вы хотите, это называется - когда собаке ... )

рони 18.03.2015 22:45

laimas,
:victory:

laimas 18.03.2015 22:47

Вам понятно чего хотят? :)

Dealaxer 18.03.2015 22:49

Цитата:

Сообщение от laimas (Сообщение 361988)
Ну елки палки, да нахрена вам он нужен?

<input type="checkbox">

Щелкайте, смотрите, и тоже не видно checked, но кошка то в черной комнате есть! Проверяйте свойства и не морочьте себе голову. В контексте того чего вы хотите, это называется - когда собаке ... )

Хорошо, объясню по другому, если просто использовать:
<select>
<option selected="" value="">Body</option>
<option value="">Kit</option>
</select>

то все работает идеально, и атрибут выставляется как надо.


Но как только добавляю плагин fansySelect
<select class="basic">
<option selected="" value="">Body</option>
<option value="">Kit</option>
</select>

то ничего не работает, я так понимаю это потому что fancySelect свои данные вбивает:
<div class="trigger">Body</div>
<ul class="options">
<li class="selected" data-raw-value="">Body</li>
<li class="" data-raw-value="">Kit</li>
</ul>

и мешает обычному select'у переключаться. И при этом методе атрибут не переставляется у опции.

рони 18.03.2015 22:50

laimas,
нет )))

laimas 18.03.2015 22:58

Если не работает, значит либо плагин кривой, либо версия не подходит. Если сами хотите разобраться, то начинать надо не со списка, а как раз с обработки событий UL, ибо он ведущий, а список ведомый.

рони 18.03.2015 23:00

Dealaxer,
плагин fancySelect нормально переключает selectedIndex кастомизируемого селекта -- может быть вы уточните что не работает?

рони 18.03.2015 23:03

Dealaxer,
попробуйте этот плагин http://dimox.name/jquery-form-styler/

Dealaxer 18.03.2015 23:09

Цитата:

Сообщение от рони (Сообщение 361996)
Dealaxer,
попробуйте этот плагин http://dimox.name/jquery-form-styler/

Спасибо, попробую обязательно.

рони 18.03.2015 23:13

Dealaxer,
а зачем вам атрибут selected? или это тайна?

Dealaxer 18.03.2015 23:29

Цитата:

Сообщение от рони (Сообщение 361999)
Dealaxer,
а зачем вам атрибут selected? или это тайна?

Я думал, что из-за него происходит обновление при выборе опции, но по ходу скорее конфликт какой то fancySelect и внутренних библиотек сайта, потому без fancy все работает, с ним не хочет.

рони 18.03.2015 23:32

Цитата:

Сообщение от Dealaxer
с ним не хочет.

:) тайна сия велика есть


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