2010-07-12 66 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事件沒有被註冊。

問候, 薩蒂亞吉特