2010-07-13 59 views
1

我有两个输入字段holidayDate和说明(ID =标签)JavaScript验证

<html> 
    <head> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $('#holidayDate').datepicker(); 
       var availableTags = ["New years Day", "Martin Luther King Day","Groundhog  Day", "Valentine's Day", "Washington's Birthday", 
       "Easter", "Earth Day", "National Arbor Day", "Mother's Day", "Memorial Day", "Flag Day", "Father's Day", "Independence Day", 
       "Labor Day", "Columbus Day", "Halloween", "Veterans Day", "Thanksgiving Day", "Pearl Harbor Remembrance Day", "Christmas Day"]; 
       $("#tags").autocomplete({source:availableTags}); 
       $('#holidayDate').change(function() { 
        var dateString = $(this).val().substring(0, 5); 
        var res = ""; 
        switch (dateString) { 
         case '01/01': res = availableTags[0]; break; //If date entered, then return holiday 
         case '02/02': res = availableTags[2]; break; 
         case '02/14': res = availableTags[3]; break; 
         case '04/22': res = availableTags[6]; break; 
         case '06/14': res = availableTags[10]; break; 
         case '07/04': res = availableTags[12]; break; 
         case '10/31': res = availableTags[15]; break; 
         case '11/11': res = availableTags[16]; break; 
         case '12/07': res = availableTags[18]; break; 
         case '12/25': res = availableTags[19]; break; 
        }   
        $('#tags').val(res); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <input id="holidayDate">Date:</input> 
     <input id="tags">Description:</input> 
    </body> 
</html> 

如果我想要做相同的验证反之亦然那么我该怎么办?

回答

0

我建议你把相应的日期到另一个数组,像这样:

var tagDates = [ '01/01', null, '02/02', '02/14', ... ]; 
/* fill in the rest, with null where you don't have a date */ 

然后,你可以只遍历数组要么取决于你想要什么。您现有的switch会变成这样:

/* convert date to tag */ 
for (var i = 0; i < tagDates.length; i++) 
    if (tagDates[i] == dateString) { 
    res = availableTags[i]; 
    break; 
    } 

你可以圆像这样做的另一种方式:

/* convert tag to date */ 
for (var i = 0; i < availableTags.length; i++) 
    if (availableTags[i] == tagString) { 
    res = tagDates[i]; 
    break; 
    }