2010-07-12 3 views
0

У меня есть два поля ввода: Id и Desc. Мне нужен javascript, который вводит значения во втором текстовом поле на основе некоторых уже установленных полей. Как на рождественский день, если введен 12/25, он должен сказать, что день Рождества.javascript autocomplete с событием onChange

Его работа на одно значение. Но если я поставлю «else if», он не будет работать для нескольких значений.

<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

ответ

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

Awesome..thanks –

+0

Нет проблем. Пожалуйста. – Stephen

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 не регистрируется.

С уважением, Satyajit