2013-09-09 2 views
0

Если я проверил список 0, и я собираюсь проверить любой из одного или обоих списков 1 или 2. Я попытался хотя бы проверить один из списка.как выбрать первый флажок с массивом и выбрать любого одного брата с помощью jquery

<div><input name="list[]" id="list0" type="checkbox" value="newsletter0" >zero</div> 
    <div><input name="list[]" id="list1" type="checkbox" value="newsletter1" >one</div> 
    <div><input name="list[]" id="list2" type="checkbox" value="newsletter2" >two</div>   
+2

Опубликовать свой код. – xdazz

+0

Ваши флажки не являются братьями и сестрами. В div, в котором они находятся, есть братья и сестры, которые сделают флажками «кузены» (дети братьев и сестер) – tvanfosson

+0

Мне это нужно, если я проверил список 0, и я собираюсь проверить любой из списка либо в списке 1, либо в списке 2 – kesavan

ответ

0

Надеюсь, я понять ваш вопрос правильно: Если пользователь проверяет ноль, вы хотите, чтобы иметь возможность проверить один или два, но НЕ как один и два?

См. Это example. Надеемся, что она будет отвечать вашим потребностям или, по крайней мере, показать вам, как достичь того, чего вы хотите:

http://jsfiddle.net/3ABJC/

$('#list0,#list1,#list2').change(function() { 
    if ($('#list0').is(':checked')) { 
     // if either one of list1 or list2 is checked 
     if ($('#list1:checked,#list2:checked').length == 1) { 
      // disable the one that is not checked 
      $('#list1:not(:checked),#list2:not(:checked)').prop('disabled',true); 
     } else { 
      // neither are checked, make sure they are all enabled 
      $('#list1,#list2').prop('disabled', false); 
     } 
    } else { 
     // if both are one and two are checked 
     if ($('#list1:checked,#list2:checked').length == 2) { 
      // disable zero (so you can't have all 3 checked) 
      $('#list0').prop('disabled', true); 
     } else { 
      // otherwise, make sure all are enabled 
      $('#list0,#list1,#list2').prop('disabled', false); 
     } 
    } 
}); 
+0

Мне нужно отобразить сообщение об ошибке, если флажок (список 1 и 2) не проверяется – kesavan

+0

'if ($ ('# list0: checked, # list1: not (: checked), # list2: not (: checked)'). length == 3) alert ('Вы также должны выбрать list1 или list2 '); ' – Levi

0

Другим возможным решением http://jsfiddle.net/7zQtE/

HTML

<div><input name="list[]" id="list0" type="checkbox" value="newsletter0" />zero</div> 
    <div><input name="list[]" id="list1" type="checkbox" value="newsletter1" disabled="disabled" />one</div> 
    <div><input name="list[]" id="list2" type="checkbox" value="newsletter2" disabled="disabled" />two</div> 
    <!-- Added button --> 
    <input type="button" id="btn" value="Check" /> 

Javascript

$(document).ready(function(){ 
    $('#list0').on('change', function(){ 
     $(this).prop('checked') ? $('#list1,#list2').removeAttr('disabled') : $('#list1,#list2').attr('disabled', 'disabled').removeAttr('checked'); 
    }); 

    $('#list1,#list2').on('change', function(){ 
     $(this).prop('checked') ? $('input[name=list\\[\\]]:not(:checked)').attr('disabled', 'disabled') : $('input[name=list\\[\\]]:not(:checked)').removeAttr('disabled'); 
    }); 

    //Added button handler 
    $('#btn').on('click', function(){ 
     if($('#list0').prop('checked') && !$('#list1,#list2').prop('checked')){ 
      alert('check item 1 or 2'); 
     }  
    }) 
}); 
+0

, как отобразить сообщение об ошибке (пожалуйста, выберите один из следующих) – kesavan

+0

, если я нажму кнопку« Отправить », чтобы проверить этот флажок, и если список 1 или список 2 не отмечен, отобразится сообщение об ошибке. ответьте мне – kesavan

+0

см. обновление, если list0 проверен -> проверить list1 или list2 проверил свойство – Dart