2012-10-26 79 views
0

我有一個由php在運行時生成的5個下拉列表,我想要使用jQuery驗證程序進行驗證。由於我給了他們一個名稱的數組,驗證器只會驗證第一個下拉列表,但我需要確保在發佈我的表單之前所有5個驗證。將jQuery Validator設置爲基於ID

PHP製作下拉

function activityDropDown($id){ 
     echo('<select id='.$id.' name=activity[]> 
      <option></option> 
      <option>a</option> 
      <option>b</option> 
      <option>c</option> 
     </select>'); 
} 
<script type="text/javascript"> 
      $(document).ready(function(){ 
     $("#friDate").Zebra_DatePicker({ 
      format: 'm-d-Y', 
      disabled_dates: ['* * * 0-4,6'], 
      first_day_of_week: 0, 
      onSelect: function(){ 
       var date = new Date($("#friDate").val()); 
       $("#mon").val(addDays(date, -4)); 
       $("#tue").val(addDays(date, -3)); 
       $("#wed").val(addDays(date, -2)); 
       $("#thu").val(addDays(date, -1)); 
       $("#fri").val(addDays(date, 0));   
      } 
     }); 
     $("#form").validate(); 
     $("#monActivity").rules("add", { 
      required: true 
     }); 
     $("#tueActivity").rules("add", { 
      required: true 
     }); 
    }); 
</script> 
      <tr> 
       <td>Activity:</td> 
       <td><?php activityDropDown('monActivity') ?></td> 
       <td><?php activityDropDown('tueActivity') ?></td> 
       <td><?php activityDropDown('wedActivity') ?></td> 
       <td><?php activityDropDown('thuActivity') ?></td> 
       <td><?php activityDropDown('friActivity') ?></td> 
      </tr> 

正如你所看到的,我已經試過手動添加基於關閉的元素ID的規則,但它仍然是做同樣的事情;只有第一個下拉菜單會被驗證。

任何幫助將不勝感激!

回答

1

報價試試這個:

function activityDropDown($id){ 
     static $activitynum = 0; 
     echo("<select id='$id' name=activity[$activitynum]> 
      <option></option> 
      <option>a</option> 
      <option>b</option> 
      <option>c</option> 
     </select>"); 
     $activitynum++; 
} 

它解決在驗證插件的限制,通過明確指定數組索引,所以名稱是不同的。

+0

謝謝!你是一個學者和聖人!這工作很好 – FunkyMonk91

1

你缺少周圍id

echo('<select id="'.$id.'" name="activity[]"> 
+0

真是尷尬! Thankyou,但這並沒有解決我的問題。它仍然只驗證第一個下拉菜單 – FunkyMonk91

+0

您是否在控制檯中發現任何錯誤...並且您可以在調用'$(「#monActivity」)。時調用'console.log($(「#monActivity」))。rules 「add」,{ required:true });''只是檢查元素是否在當時存在.. –

+0

沒有錯誤,它寫入控制檯沒有問題 – FunkyMonk91