select - переключатель
Есть селект и набор чекбоксов. Необходимо disable определённые чекбоксы.
<select> <option value="zero">- выберите -</option> <option value="aaa" id="aaa">aaa</option> <option value="bbb" id="bbb">bbb</option> <option value="ссс" id="ссс">ссс</option> <option value="ddd" id="ddd">ddd</option> </select> <label id="111"><input type="checkbox" name="f">111</label> <label id="222"><input type="checkbox" name="f">222</label> <label id="333"><input type="checkbox" name="f">333</label> <label id="444"><input type="checkbox" name="f">444</label> <label id="555"><input type="checkbox" name="f">555</label>Пример работы: Выбрал aaa: disable 111+222+444 Выбрал bbb: disable 111+333+444 Выбрал ccc: disable 222+444+555 Выбрал ddd: disable false Подскажите как реализовать. Спасибо. |
создаешь хеш, где пишешь, что скрывать при нажатии aaa,bbb, или чего-нибудь еще.
вешаешь обработчик на изменение верхнего чекбокса, при изменении ищешь значения в хеше и ставишь атрибут disable на те,которые указаны в хеше пример хеша : var A = { 'aaa' : [111,222,444], 'bbb' : [111,333,444] } и так далее |
А можно пример?
Я слаб в теме... :( |
<select onchange="change(this, 'checkboxes');"> <option value="zero">- выберите -</option> <option value="aaa" id="aaa">aaa</option> <option value="bbb" id="bbb">bbb</option> <option value="ccc" id="ccc">ccc</option> <option value="ddd" id="ddd">ddd</option> </select> <div id="checkboxes"> <label id="111"><input type="checkbox" name="f">111</label> <label id="222"><input type="checkbox" name="f">222</label> <label id="333"><input type="checkbox" name="f">333</label> <label id="444"><input type="checkbox" name="f">444</label> <label id="555"><input type="checkbox" name="f">555</label> </div> <script> var arr = {'aaa':['111','222','444'],'bbb':['111','333','444'],'ccc':['222','444','555'],'ddd':''}; eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)}; if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)} k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){ p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}} return p}('e f(6,5){7 1=6.g;7 3=8.b(5).c(\'a\');4(i=0;i<3.9;i++)3[i].2=h;4(i=0;i<d[1].9;i++){8.b(d[1][i]).c(\'a\')[0].2=\'2\'}}',19,19 ,'|v|checked|checkboxes|for|id|select|var|document|length|input|getElementById|getElementsByTagName|arr|function|change|value|false|'.split('|'),0,{})) </script> |
Спасибо, добрый человек!
|
Цитата:
можно объяснить немного эту часть кода? и почему нельзя было сделать более попроще с jQ ? |
Цитата:
|
Цитата:
|
ответа так и не получил )
|
Цитата:
|
Часовой пояс GMT +3, время: 16:18. |