2012-02-26 37 views
0

我對錶單有jQuery驗證。有一個收音機(出席)和2個下拉菜單(顏色和陰影)。單選按鈕時jQuery驗證不起作用

如果用戶第一次登錄,它可以很好地工作。但是,因爲我已經從數據庫中檢索了他們之前選擇的值,如果用戶已經選擇了他們的選擇並重新登錄,如果他們之前選擇了「否」,那麼我的jQuery不起作用。這兩個下拉菜單提交併且不會變灰,因爲它們應該是。但是,如果我點擊「否」收音機盒就可以了。不知道問題出在jQuery或我的單選按鈕上。

如果用戶第一次登錄並選擇「否」,它們會立即變灰。

jQuery驗證:

<script src="jquery.js"></script> 
<script>  
    $(function(){  
      function validate(id){  
       var enabled = ($("input[name='attendance" + id + "']:checked").val() == 'Yes');   
       if(enabled){    
        //Please select option is selected    
        if($("#colour" + id)[0].selectedIndex == 0){     
        alert('Please make your colourselection');     
        return false;    
        }    
        //Please select option is selected    
        if($("#shade" + id)[0].selectedIndex == 0){     
         alert('Please select your shade');     
         return false;    
        } 
       }  
       return true;  
      }; 

      $("input[name^='attendance']").click(function() { 

       var id = this.name.replace('attendance', '');  
       $("#colour" + id + ", #shade" + id).prop("disabled", this.value == 'No');   
       validate(id);  
      });  
      $("input:submit").click(function(){   
       var retVal = true; 
       $.each([1], function(i, val){ 
        retVal = (validate(val) && retVal); 
       }); 
       return retVal; 
      }); 
     }); 
    </script> 

單選按鈕:

<input name="attendance1" type="radio" id="Yes" value="Yes" checked="CHECKED" <?php if($row3['attendance1']=="Yes") { echo "checked"; }?>/>Attend with pleasure 
<br /> 
<input name="attendance1" type="radio" id="No" value="No" <?php if($row3['attendance1']=="No") { echo "checked"; }?>/>Decline with regret 

回答

0

你增加額外檢查中是單選按鈕= 「選中」,因此會一直保持,儘管得到的值檢查從數據庫中,所以嘗試刪除,如,

 

<input name="attendance1" type="radio" id="Yes" value="Yes" <?php if($row3['attendance1']=="Yes") { echo "checked"; }?>/>Attend with pleasure 
<br /> 
<input name="attendance1" type="radio" id="No" value="No" <?php if($row3['attendance1']=="No") { echo "checked"; }?>/>Decline with regret 
 

希望它可以幫助

0

我看到的問題是,這部分

checked="CHECKED" <?php if($row3['attendance1']=="Yes") { echo "checked"; }?> 

這將呈現以下,如果$row3['attendance1']「是」

checked="CHECKED" checked 

因此,這將創建問題。刪除checked="CHEKCED"部分。