2010-07-12 126 views
0

我有两个输入字段,Id和Desc。我需要一个JavaScript,它根据已设置的某些字段输入第二个文本字段中的值。像圣诞节一样,如果进入12/25,则应该说圣诞节。JavaScript自动完成与onChange事件

它为一个值工作。但是,如果我把“其他如果”它不适用于多个值。

<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() { 
     if ($(this).val().substring(0, 5) === '12/25') { 
      $('#tags').val('Christmas Day'); 
     }else if ($(this).val().substring(0, 5) === '01/01') { 
      $('#tags').val('New years Day'); 
     } else { 
      $('#tags').val(''); 
     }     
    }); 
}); 
</script> 
+0

你应该考虑标志着你接受的答案。 – Andir 2010-07-13 12:34:10

回答

2

首先,您可以将这些组合成一个DOM就绪事件。此外,你的一些代码在事件之外,所以这可能是为什么它不起作用。

$(function() { 
    $('#date').datepicker(); 
    var availableTags = ["Christmas Day","etc"]; 
    $("#tags").autocomplete({source:availableTags}); 
    $('#date').change(function() { 
     if ($(this).val().substring(0, 5) === '12/25') { 
      $('#desc').val('Christmas'); 
     } else { 
      $('#tags').val(''); 
     } 
    }); 
}); 

UPDATE:希望这只是一个写得不好的例子,但你给定的HTML是非常无效的为好。注意,您打开<div>标记,然后关闭<p>标记,以及其他问题,例如在打开正文之前未关闭<head>标记等。所有这些问题都可能会阻止javascript正常运行。

+0

真棒..感谢 – 2010-07-12 21:55:28

+0

没问题。别客气。 – Stephen 2010-07-12 21:57:51

0

我相信你错过了在说

$('#desc).val('Christmas'); 

行撇号应改为

$('#desc').val('Christmas'); 
0

也许你应该这样做:

<DIV class="ui-widget">Date: <INPUT TYPE="TEXT" name="xx" property="xx" id="date" /></P> 
<input type="text" id="desc" name="desc"/> 
<script> 
$('#date').change(function() { 
    if ($(this).val().substring(0, 5) === '12/25') { 
     $('#desc').val('Christmas'); 
    } 
}); 
</script> 
</body> 

我想你onchange事件没有被注册。

问候, 萨蒂亚吉特