views:

26

answers:

1

I have two input fields holidayDate and Description(id=tags)

<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>

If I want to do the same validation vice versa then what do I do?

A: 

I suggest you put the corresponding dates into another array, like this:

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

Then you could just iterate over either array depending on what you want. Your existing switch would become this:

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

And you can do it the other way round like this:

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