2012-02-26 4 views
0

У меня есть проверка jQuery для моей формы. Существует радио-бокс (посещаемость) и два выпадающих меню (цвет и оттенок).Проверка 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" часть.

Смежные вопросы