suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Javascript – Kontrollkästchenbedingung

<input id="a1" type="checkbox">
<label for="a1">1</label>
<input id="a2" type="checkbox">
<label for="a2">2</label>
<input id="a3" type="checkbox">
<label for="a3">3</label>
<input id="a4" type="checkbox">
<label for="a4">4</label>
<input id="a5" type="checkbox">
<label for="a5">5</label>

<script>
$(function()
{
  disabledOtherBox();
  $("#a1").click(disabledOtherBox);
  disabledA1Box();
  $("#a2,#a3,#a4,#5").click(disabledA1Box);
});

function disabledOtherBox()
{
  if (this.checked)
  {
    $("#a2,#a3,#a4,#a5").attr("disabled", true);
  }
  else
  {
    $("#a2,#a3,#a4,#a5").removeAttr("disabled");
  }
}

function disabledA1Box()
{
  if (this.checked)
  {
    $("#a1").attr("disabled", true);
  }
  else
  {
    $("#a1").removeAttr("disabled");
  }
}
</script>

Das Obige sind die Bedingungen, die ich geschrieben habe
Wenn a1 aktiviert ist
a2~5 ist gesperrt

Wenn einer von a2~a5 geprüft wird
, dann ist a1 gesperrt

Ich möchte eine weitere Bedingung hinzufügen, komme aber immer noch nicht dahinter
Das heißt, angenommen, einer von a2~5 ist geprüft (oder zwei, drei oder vier sind alle geprüft)
dann ist a1 gesperrt
es sei denn, a2 ~ 5 ist nicht aktiviert
dann wird a1 aktiviert

習慣沉默習慣沉默2750 Tage vor655

Antworte allen(1)Ich werde antworten

  • 習慣沉默

    習慣沉默2017-05-19 10:49:09

    <script>
        $(function(){
            var a1 = $("#a1");
            var other = $("#a2,#a3,#a4,#a5");
            
            a1.click(function(){
                disabledBox(other,this.checked)
            });
            
            other.click(function() {
                  var r = false;
                
                other.each(function() {
                    if(this.checked) {
                        r = true;
                        return false;
                      }
                })
                  
                  disabledBox(a1,r)
            });
           
            //如a1已勾选,则#a2,#a3,#a4,#5锁住
            //disabledBox(other,a1.attr('checked'))
            
            //如#a2,#a3,#a4,#5其中一个或多个已勾选,则a1锁住
            other.each(function() {
                 if(this.checked) {
                    disabledBox(a1,true)
                     return false;
                 }
            })
        });
        
        function disabledBox(el,disabled){
            el.attr("disabled", !!disabled);
        }
    </script>

    Antwort
    0
  • StornierenAntwort