itsathere Ответов: 4

установите и снимите флажок одновременно в контрольном списке в javascript


<asp:CheckBoxList ID="chkFlow" runat="server" onchange="fnchkFlow(this);">
                    <asp:ListItem Value="1" Text="Flow"></asp:ListItem>
                    <asp:ListItem Value="2" Text="STAT"></asp:ListItem>
                </asp:CheckBoxList>


я хочу проверить и снять флажок listitem одновременно с их текстом или значением

как это сделать.

Пожалуйста помочь
Спасибо


РЕДАКТИРОВАТЬ: АЛЬ.

Если установлен флажок "поток", то включается "стат". Если "поток" не установлен, то "стат" должен быть снят и отключен

Andy Lanng

Вопрос расплывчатый.

Пожалуйста, объясните подробнее, что вы имеете в виду и почему вам нужно это сделать, пожалуйста.

itsathere

1. если listitem элемент "потока" будет установлен, то я могу проверить "стат" тоже.но без проверки "поток" я не могу проверить "стат".

2. Если я также проверил "поток" и "стат", а затем, когда я сниму флажок "поток", то я должен снять флажок "стат" также потому, что без проверки "потока"я не могу проверить "стат".

Andy Lanng

Пожалуйста, используйте кнопку ответа. В противном случае я не получу уведомления о том, что вы отправили сообщение.

Хорошо. Теперь я понимаю, что ты имеешь в виду. Пожалуйста, одобрите мои изменения в вашем вопросе

itsathere

что ты имеешь в виду?
Если у вас есть идея дайте тогда дайте мне javascript логики события onchange


Andy Lanng

Я изменил твой вопрос. Я тоже напишу решение.

Andy Lanng

Новый вопрос:
Вам это нужно в javascript (клиентская сторона) или в коде (C#)?

itsathere

в javascript (клиентская сторона)

itsathere

Мне это нужно в javascript, потому что я пробовал код позади.Код позади требует времени, чтобы проверить и снять галочку, вот почему я хочу использовать javascript.

Andy Lanng

нет проблем-решение на пути. вы используете jQuery?

4 Ответов

Рейтинг:
20

itsathere

<script>
function fnchkFlow() {
var items = $('#<% = chkFlow.ClientID %> input:checkbox');
for (var i = 0; i < items.length; i++)
{
if (items[0].checked == true) {
items[i].checked = true;
break;
}
else {
items[1].checked = false;
}
}
 
}
</script>


Arasappan

хороший;

Рейтинг:
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[^]


Рейтинг:
1

Anil kumar 55

$('.другие').функция на('нажмите' , () {
$('. db1'). each (функция(){
$(this). removeAttr ('checked');
})
});

$('.данных db1').функция на('нажмите', (){
$('. other'). removeAttr ('checked');
});