php
  • jquery
  • 2016-01-13 78 views 2 likes 
    2

    我尝试从选择菜单中删除禁用属性的代码块将我的复选框验证返回为true。如何正确删除禁用的属性而不会搞乱我的验证?当选中特定框时,删除选择菜单上禁用的属性

    while($row = mysqli_fetch_assoc($query)){ 
    echo "<h5><input class='check' panel-menu='menu$index' 
    type='checkbox' name='roomType[]' id='roomType[$index]' 
    value='".$row['roomDetailsNo']."'> Choose this Room"; 
    
    echo "<br>Number of Rooms:&nbsp;"; 
           echo "<select id='menu$index' name='noOfRooms[".$row['roomDetailsNo']."][]' disabled>"; 
           $rooms = 0; 
           while($rooms <= $row['available_rooms']){ 
           echo "<option>"; 
           echo $rooms; 
           echo "</option>"; 
           $rooms++; 
           } 
           echo "</select><br>"; 
    } 
    

    ,这里是我的jQuery

    <script> 
    
    $(function(){ 
        $('#btn').on('click', function(){ 
         var check = $("input:checked").length; 
         if(check <= 0){ 
          alert("Please Choose a Room"); 
          return false; 
         } 
         else{ 
          $('.check').on('click', function{ 
          var check = $(this).attr('panel-menu'); 
          checkbox = $('#'+check).is(':checked'); 
           if(checkbox){ 
            $('#'+check).prop('disabled', false); 
            alert("checked"); 
           } 
          }); 
          return true; 
         } 
        }); 
    }); 
    
    </script> 
    
    +1

    可能重复的[使用JQuery删除禁用的属性?](http://stackoverflow.com/questions/13626517/remove-disabled-attribute-using-jquery) – momouu

    +0

    但是,他没有验证,如果其中一个复选框是检查与否。我已经并且正在搞乱我的回报价值。 –

    回答

    1

    不要围在里面这种情况下,另一click事件处理一个click事件处理程序。
    同时验证,#btn.check点击次数分开:

    $('#btn').on('click', function(){ 
        var check = $("input:checked").length; 
        if(check <= 0){ 
         alert("Please Choose a Room"); 
         return false; 
        } 
    }); 
    
    // you missing parenthesis for function "()": 
    $('.check').on('click', function(){ 
        // use data-* attributes (explanation below the code) 
        var check = $(this).attr('data-panel-menu'); 
        if($(this).is(':checked')){ 
         $('#'+check).prop('disabled', 0); 
        }else{ 
         // if checkbox isn't checked, set the first option as default: 
         $('#'+check).prop('disabled', 1).children(':first').prop('selected', 1); 
        } 
    }); 
    

    JSFiddle demo

    而不是定制panel-menu属性,你应该使用data-*属性。 See why

    相关问题