2014-02-13 3 views
-1
 <div class="result-content"> 
    <div class="table-container"> 
     <table class="table-names"> 
      <thead> 
       <tr> 
        <th></th> 
        <th>Company Name 
        </th> 
        <th>Type 
        </th> 
        <th>Location 
        </th> 
        <th></th> 
        <th>Ultimate Parent 
        </th> 

       </tr> 
      </thead> 
      <tbody> 
       @{ 
        int count = -1; 

       } 
       @foreach (Company company in Model) 
       { 
        <tr> 
         @{ 
          count = Model.IndexOf(company); 
          //var rParent = new System.Text.RegularExpressions.Regex(",| |&"); 
          var contentParent =     company.CompanyId.ToString().RemoveInvalidSymbolsInId();//rParent.Replace(company.CompanyId.ToString(), "_"); 
          string value = string.Format("{0}|{1}", company.CompanyName, company.CountryRef.Name); 
          var comp = value.Split('|'); 

          var parentCompanyId = company.UltimateCompanyId.ToString().RemoveInvalidSymbolsInId(); 
          string ultimateParentName = string.Format("{0}", company.UltimateParentName); 
          var companyLevel = 0; 

         } 
         <td> 
          <div id="childSubsCheckBoxes"> 
           <input type="checkbox" id="@string.Format("idRadio_{0}", contentParent)" 
             name="@ViewBag.UiElementMapper.SearchString" 
             value="@ViewBag.UiElementMapper.SearchString" 
             data-Criteria="@company.CompanyId" 
             data-Operation="@ViewBag.UiElementMapper.Operation" 
             data-Groupkey="@ViewBag.UiElementMapper.GroupKey" 
             data-SearchString="@ViewBag.UiElementMapper.SearchString" 
             data-Value="@string.Format("{0}", comp[0])" 
             data-ValueType="@ViewBag.UiElementMapper.ValueType" /> 
          </div> 
         </td> 

         <td>@company.CompanyName 
         </td> 
         <td style="padding-left: 10px;">@if (@company.CompanyLevel != null) 
                 { 
                  if (@company.CompanyLevel == 0) 
                  { 
                   <img src="@Url.Content("~/Content/images/ICTSP-Logo-red.gif")" title="" alt="Ultimate Parent" /> 
                  } 

                  else 
                  { 
                   <img src="@Url.Content("~/Content/images/ICTSP-Logo-blue.gif")" title="" alt="Child/Subsidiary"/> 
                  } 
                 } 
         </td> 
         <td>@company.CountryRef.Name 
         </td> 
         <td> 
          @{ 
            <div id="parentCheckBoxes"> 
             <input type="checkbox" id="@string.Format("idRadio_{0}", parentCompanyId)" 
               name="@ViewBag.UiElementMapper.SearchString)" 
               value="@ViewBag.UiElementMapper.SearchString" 
               data-Criteria="@company.UltimateCompanyId" 
               data-Operation="@ViewBag.UiElementMapper.Operation" 
               data-Groupkey="@ViewBag.UiElementMapper.GroupKey" 
               data-SearchString="@ViewBag.UiElementMapper.SearchString" 
               data-ValueType="@ViewBag.UiElementMapper.ValueType" 
               data-Value="@string.Format("{0}", ultimateParentName)" 
               data-Level="0" 
              /> 
            </div> 

          } 
         </td> 
         <td>@if (@company.UltimateParentName != null) 
          { 
           <font title="@company.UltimateParentName">@Html.ActionLink(company.UltimateParentName, "GetCompanyInformation", new { companyId = company.UltimateCompanyId, companyName = company.UltimateParentName, guid = Guid.NewGuid() })</font> 
          } 
         </td> 


        </tr> 
       } 
      </tbody> 
     </table> 
    </div> 
</div> 

в приведенном выше HTML .. Я должен отключить флажки под Div-childSubsCheckBoxes на щелчке флажков под Div-parentCheckBoxes. У нас уже есть функция для onlick флажков на этой странице. Я написал код, указанный ниже, и отключает первый флажок, а не остальные флажки. Пожалуйста, дайте мне знать, где я ошибаюсь.необходимо отключить набор флажков

clb.el.criteriaList.find('#childSubsCheckBoxes').each(function() { 
      var checkbox =  clb.el.criteriaList.find('#childSubsCheckBoxes').find('input[type=checkbox]'); 
      checkbox.attr('disabled', true); 

     }); 

по щелчку любого флажка я есть эта функция

addCheckboxCriteria: function() { 
     clb.el.criteriaList.find('#childSubsCheckBoxes').each(function() { 
      var checkbox = clb.el.criteriaList.find('#childSubsCheckBoxes').find('input[type=checkbox]'); 
      checkbox.attr('disabled', true); 
     }); 

     var t = $(this); 
     var empty = clb.el.criteriaForm.find('div.criteria-item-checked').length; 

     var searchString = $.trim(clb.el.criteriaMenuList.find('li.active').text()); 
     var currentTab = t.parents('.search-criteria-list').attr('id'); 
     var element; 
     var tabString; 
     var count = 0; 
     clb.el.criteriaForm.find('.no-criteria').find('span').remove(); 
     if (currentTab) { 
      var currentTabs = currentTab.replace(/ul-/, ''); 
     } 
     count = clb.el.criteriaForm.find('div.criteria-item-checked').length; 

     if ($('#' + currentTabs).parent().css('display') === 'block') { 

      var tabString = $('#' + currentTabs).parent().find('li.active').find('a').attr('data-name'); 
      var idTab = $('#' + currentTabs).parent().find('li.active').attr('id'); 
     } 
     if (!t.attr('checked') == false && count < clb.maxCriteriaCount) { 
      var divElement = $('<div/>', { 
       'class': 'criteria-item-checked', 
       id: 'div_' + t.attr('id'), 
       'Name': t.attr('name'), 
       'data-Start': t.attr("data-start"), 
       'data-Criteria': t.attr("data-Criteria"), 
       'data-Item': t.attr('data-Item'), 
       'data-Operation': t.attr('data-Operation'), 
       'data-Groupkey': t.attr('data-Groupkey'), 
       'data-SearchString': t.attr('data-SearchString'), 
       'data-Value': t.attr('data-Value'), 
       'data-ValueType': t.attr('data-ValueType'), 
       'data-Level':t.attr('data-Level') 

      }); 
      var delElement = $('<a/>', { 
       text: 'X', 
       href: '#', 
       'class': 'del-criteria' 
      }); 
      if ($('#' + currentTabs).parent().css('display') === 'block') { 
       var aElement = $('<a/>', { 
        text: tabString, 
        'class': 'a-criteria' 
       }); 
      } else { 
       var aElement = $('<a/>', { 
        text: searchString, 
        'class': 'a-criteria' 
       }); 
      } 
      var spanElement = $('<span/>', { 
       text: ' ' + t.attr('data-Value') 
      }); 

      delElement.appendTo(divElement); 
      spanElement.appendTo(divElement); 

      // remove criteria if tab is not empty 
      if ($('#' + currentTabs).parent().css('display') === 'block') { 
       clb.el.criteriaForm.find('ul').find('.data-tab').each(function() { 
        var li = $(this); 
        if (li.attr('data-name') === searchString && li.attr('data-group') !== idTab) { 
         li.remove(); 
        } 
       }); 
       t.parents('.partial-box').find('ul.search-criteria-list').not('#ul-' + currentTabs).find('input[type="checkbox"]').attr('checked', false); 
      } 

      if (clb.el.criteriaForm.find('ul').find('li').length) { 
       clb.el.criteriaForm.find('ul').find('li').each(function() { 
        var t = $(this); 
        if (t.attr('data-name') === searchString) { 
         element = t; 
        } 
        if (clb.el.searchName) { 
         t.attr('data-companyname', clb.el.searchName.val()); 
        } 
       }); 
       if (element) { 
        if (element.find('div').length) { 
         var orElement = $('<font/>', { 
          text: ' OR' 
         }); 
         orElement.appendTo(spanElement); 
        } 
        //divElement.appendTo(element); 
        element.find('a.a-criteria').after(divElement); 
       } else { 
        var liElement = $('<li/>', { 
         'data-name': searchString 
        }); 
        if ($('#' + currentTabs).parent().css('display') === 'block') { 
         liElement.addClass('data-tab'); 
         liElement.attr('data-group', idTab); 
        } 
        if (clb.el.searchName) { 
         liElement.attr('data-companyname', clb.el.searchName.val()); 
        } 
        aElement.appendTo(liElement); 
        divElement.appendTo(liElement); 
        liElement.appendTo(clb.el.criteriaForm.find('ul')); 
       } 
      } else { 
       var liElement = $('<li/>', { 
        'data-name': searchString 
       }); 
       if (clb.el.searchName) { 
        liElement.attr('data-companyname', clb.el.searchName.val()); 
       } 
       if ($('#' + currentTabs).parent().css('display') === 'block') { 
        liElement.addClass('data-tab'); 
        liElement.attr('data-group', idTab); 
       } 
       aElement.appendTo(liElement); 
       divElement.appendTo(liElement); 
       liElement.appendTo(clb.el.criteriaForm.find('ul')); 
      } 
      t.attr('checked', true); 
      //clb.el.criteriaForm.parent().find('.btn').show(); 
      //clb.el.criteriaForm.find('.title').show(); 
      clb.el.criteriaForm.find('.no-criteria').hide(); 
     } else { 
      var li = clb.el.criteriaForm.find('#div_' + t.attr('id')).parents('li:first'); 
      clb.el.criteriaForm.find('#div_' + t.attr('id')).remove(); 
      t.attr('checked', false); 
      if (li.find('div.criteria-item-checked').length === 0) { 
       li.remove(); 
      } 
      if (clb.el.criteriaForm.find('li').length === 0) { 
       //clb.el.criteriaForm.parent().find('.btn').hide(); 
       clb.el.criteriaForm.find('.no-criteria').show(); 
      } 
      clb.checkLastDiv(); 
     } 
    }, 
+0

Использование 'checkbox.prop ('отключено', правда),' вместо 'checkbox.attr ('отключено', правда),' – Satpal

+0

нет, это не работает ... так как даже сказал checkbox.prop ('отключено', правда); просто отключает первый флажок. Если вы проверите мой html выше, у меня будет примерно один флажок в каждом дочернемSubsCheckBoxes div ... – Vidya

ответ

0

Я был в состоянии решить ее путем изменения кода, как показано ниже. Проблема была в том, что я упомянул div id = childSubsCheckBoxes, и dom не смог идентифицировать все флажки.

Я решил это, изменив свойство div id на класс .. это div class = childSubsCheckBoxes и использовать приведенный ниже код. Он работал как магия.

clb.el.criteriaList.find('.childSubsCheckBoxes').each(function() { 
      var checkbox =  clb.el.criteriaList.find('.childSubsCheckBoxes').find('input[type=checkbox]'); 
      checkbox.prop('disabled',true); 
     }); 
0

Try:

$('.sel').each(function() 
    { 
     $(this).prop('disabled','disabled'); 
    }); 

После снова глядя на свой код, это должно работать:

$("input[type=checkbox]").attr("disabled", true);

+2

использовать true 'prop ('disabled', true);' – Anton

+0

см. Мой комментарий выше – Vidya

0

Вы можете использовать JQuery метод атр отключить флажки в

  $("input[type=checkbox]").attr("disabled", true); 
Смежные вопросы