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, время: 14:38. |