Рейтинг:
1
Andy Lanng
Это решение использует jQuery. Если вы не используете jQuery, я предлагаю вам включить его.
function fnchkFlow(this){
//first get the jQuery version of the listbox
var listbox = $(this);
//make sure we have something (basic error checking)
if(listbox && listbox.length)
{
//find the items you're looking at
//var optionFlow = $(listbox).find("option[value='1']);
//var optionStat = $(listbox).find("option[value='2']);
//whoops - they are not "options"
//These selectors should work.
var optionFlow = $(listbox).find("input[type='checkbox'][value='1']);
var optionStat = $(listbox).find("input[type='checkbox'][value='2']);
//more of that basic error checking
if(optionFlow && optionFlow.length && optionStat && optionStat.length)
{
if($(optionFlow).is(":checked"))
{
$(optionStat).prop('disabled',false);
}
else
{
$(optionStat).prop('checked',false);
$(optionStat).prop('disabled',true);
}
}
}
}
itsathere
Пусть вы протестируете javascript.Это не работает
Andy Lanng
В каком смысле это не работает?
Можете ли вы отладить его в Chrome или firebug?
itsathere
Да, я тестирую его на хроме.
Andy Lanng
так...
В каком смысле это не работает?
itsathere
Он никогда не заходит внутрь
если(optionFlow &амп;&амп; optionFlow.длина и усилитель; & optionStat &амп;&амп; optionStat.длина)
состояние.Когда я удаляю вышеприведенное условие, то оно всегда следует ниже другого условия
if ($(optionFlow). is (": checked"))
{
$(optionStat). prop ('disabled', false);
}
ещё
{
$(optionStat). prop ('checked', false);
$(optionStat). prop ('disabled', true);
}
Andy Lanng
Это и есть та самая "базовая обработка ошибок".
Если он никогда не проходит мимо, если(optionFlow &амп;&амп; optionFlow.длина и усилитель; & optionStat &амп;&амп; optionStat.длина) - тогда что-то не так с выбором.
Можете ли вы сказать мне значение "optionFlow" и "optionStat" на данный момент?
itsathere
var optionStat = $(listbox). find ("option[value= '2']");
optionStat показывает ниже
контекст: неопределенный
длина: 0
prevObject: jQuery.fn.jQuery. init[1]
селектор: "опция[значение= '2']"
__proto__: jQuery[0]
var optionFlow = $(listbox). find ("option[value= '1']");
optionFlow показывает, как показано ниже
контекст: неопределенный
длина: 0
prevObject: jQuery.fn.jQuery. init[1]
селектор: "опция[значение= '1']"
__proto__: jQuery[0]
Andy Lanng
О - я вижу проблему >_ & lt;
javascript зависит от вывода html. Не могли бы вы опубликовать HTML-разметку в том виде, в каком она появляется в браузере для элемента управления checkboxlist.
Я исправлю решение, как только прочитаю разметку
itsathere
& lt;table id= "chkFlow" >
&ЛТ;элемента tbody&ГТ;&ЛТ;тр&ГТ;
&ЛТ;тд&ГТ;&ЛТ;вход с ID="chkFlow_0" тип="флажок" название="chkFlow$0" значение="1"&ГТ;&ЛТ;метка для="chkFlow_0"&ГТ;поток&ЛТ;/ярлык&ГТ;&ЛТ;/тд&ГТ;&ЛТ;тд&ГТ;&ЛТ;ввода ID="chkFlow_1" тип="флажок" название="chkFlow$1" значение="2"&ГТ;&ЛТ;метка для="chkFlow_1"&ГТ;стат&ЛТ;/ярлык&ГТ;&ЛТ;/тд&ГТ;
< / tr>
&ЛТ;/элемента tbody&ГТ;&ЛТ;/стол&ГТ;
Andy Lanng
ОК-решение обновлено.
Селекторы там, где ищут не те предметы. Я искал варианты выбора, когда должен был искать флажки
itsathere
Я сделал это сам
Ниже приведен javascript
& lt;скрипт>
функция fnchkFlow() {
отладчик;
стр ВАР = "1,2";
var items = $('#<% = chkFlow.Идентификатора ClientID %&ГТ; входной сигнал:переключатель');
for (var i = 0; i < items.длина; i++)
{
if (items[0]. checked = = true) {
элементы[я].проверено = истина;
перерыв;
}
ещё {
items[1]. checked = false;
}
}
}
< / script>
Andy Lanng
Потрясающий. Доброе дело. Я рад, что вы нашли свое собственное решение ^_^
itsathere
да, в любом случае спасибо.
Рейтинг:
1
Thomas Nielsen - getCore
Один из подходов состоит в том, чтобы использовать fontawesome для изменения внешнего вида элементов управления, а затем, в конечном счете, использовать переключатели и сделать их похожими на флажки, тогда вам не придется делать ничего, кроме стиля.
Я искал статью с примерами, и я думаю, что этот человек излагает эту идею.
Конечно, нет никаких причин не использовать jquery, но этот подход допускает некоторые несколько более элегантные решения, чем упомянутые выше, хотя комбинация вполне может быть и нежелательной :)
http://weblog.west-wind.com/posts/2015/Feb/26/Using-FontAwesome-Fonts-for-HTML-Radio-Buttons-and-Checkboxes[^]