Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как запретить выбор опции по ID (https://javascript.ru/forum/misc/60511-kak-zapretit-vybor-opcii-po-id.html)

Alex921 04.01.2016 14:38

Как запретить выбор опции по ID
 
Здравствуйте, подскажите пожалуйста, реально ли сделать так, что бы можно было запрещать выбор опции в селекте по ее id_value, что бы она в списке отображалась, а выбрать ее нельзя было?
Или с помощь скрипта это не возможно?
Спасибо

laimas 04.01.2016 15:00

А сразу указать disabled не пойдет, или надо программно управлять этим?

рони 04.01.2016 15:03

Alex921,
http://htmlbook.ru/html/option/disabled
https://learn.javascript.ru/attribut...трибуты

Alex921 04.01.2016 17:03

Цитата:

Сообщение от laimas (Сообщение 402524)
А сразу указать disabled не пойдет, или надо программно управлять этим?

Да, именно программно, так как данные в опциях тянуться с базы, тут или скриптом через id_value блокировать, или через базу вручную...
Это фильтр для сайта, и хочется сделать типа так в одном селекте:
Район
1
2
3
Пригород
1
2
3
И вот эти Район и пригород хочется заблокировать, что бы пользователи не имели возможность его выбрать...

рони 04.01.2016 18:59

Alex921,
опять тоже самое
Цитата:

Сообщение от рони
вам сложно помочь... недостаточное описание и локализация проблемы.

непонятно в какой момент, по каким признакам блокировать и т.д.

laimas 04.01.2016 19:40

Цитата:

Сообщение от Alex921
И вот эти Район и пригород хочется заблокировать

Это не опции надо блокировать, а скорее всего нужны optgroup, по родителю группировка, так?

Alex921 04.01.2016 23:36

Цитата:

Сообщение от laimas (Сообщение 402543)
Это не опции надо блокировать, а скорее всего нужны optgroup, по родителю группировка, так?

Совершенно верно друг, именно группировка
Район - это группа, вот ее и нельзя выбирать в селекте..
Но дело в том, что опции уже в базе, и переделывать абсолютно все - никто не решится, тут надо как-то по id или как, сделать с опции группу...

Я так посмотрел в базе, и там такое:
Район - это тоже опция
_Пункт 1 - опция
_Пункт 2 - опция
_Пункт 3 - опция
Пригород - это опция
_Пункт 1 - опция
_Пункт 2 - опция
_Пункт 3 - опция
Получается так, что как бы пользователю понятно что "Район" выбирать нельзя а только то, что к нему подпадает, но есть такие уникалы что просто выбирают опцию "Район" и мне скоро голову снесут...

РОНИ, почему же мало информации? Что вам предоставить, вы только скажите и все выложу...

рони 05.01.2016 00:22

Цитата:

Сообщение от Alex921
почему же мало информации?

видимо потому что не телепат, пока для меня ваши речи выглядят примерно так: поди туда незнамо куда, но принеси аленький цветочек :)

laimas 05.01.2016 04:40

Цитата:

Сообщение от Alex921
Район - это группа, вот ее и нельзя выбирать в селекте..

Вам нужен optgroup описывающий район, пригород и т.д., а не опция.

Цитата:

Сообщение от Alex921
Но дело в том, что опции уже в базе

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

Alex921 05.01.2016 11:58

нет, списки формируются не через html а через JS
Вот этот селект
t+="<select "+t_change+" name='"
          +name_prefix_dynamic_pole_form+data_one_properties["id_properties"]+"' >";
		 t+="<option value='-1' style=\'color:#1DA5EA;\'>"+t_name_pole+"<\/option>";
         for (j=0;j<mas_values_properties.length;j++)
           {
            one_values=mas_values_properties[j];
            t_selected="";
            if ( on_value_pole )
              {
               if (meaning_pole == one_values["id_value"])
                 {
                  t_selected=" selected='selected' ";
                 }
              }
            t+="<option value='"+one_values["id_value"]+"' "+t_selected+" >"+one_values["name_value"]+"</option>";
           }
         t+="</select>";

Но если я првильно понимаю ситуацию, если в этом селекте что-то добавить, то придется переделывать тысячи опций...
Может как-то можно завернуть нужные поля в базе в html?
Или просто взять через какой-то скрипт заблокировать нужные ID опций?


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