0


0

onChangeイベントでのJavaScriptオートコンプリート

IdとDescの2つの入力フィールドがあります。 すでに設定されているフィールドのいくつかに基づいて、2番目のテキストフィールドに値を入力するjavascriptが必要です。 クリスマスの日と同様に、12/25が入力された場合は、クリスマスの日と言う必要があります。

1つの価値のために働く。 しかし、「else if」を指定すると、複数の値に対して機能しません。

$(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('');
        }
    });
});

3 Answer


2


まず、これらを1つの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('');
        }
    });
});

更新:うまく書かれていない例ですが、あなたのHTMLも非常に無効です。 あなたが「

タグを付けてから「

タグなど、「


0


私はあなたが言う行にアポストロフィが欠けていると信じています

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

読むはずです

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


0


たぶんこれを行う必要があります:

Date:


$('#date').change( function() {
    if ($(this).val().substring(0, 5) === '12/25') {
        $('#desc').val('Christmas');
    }
});

onchangeイベントは登録されていないと思います。

よろしく、Satyajit