php
  • jquery
  • 2016-01-13 77 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

    相關問題