0

現在、すぐに使用できる php/jQuery 自動提案スクリプトを変更しています。スクリプトを複数のテキスト入力フィールドで動作させるのに苦労しています。もともとは 1 つのフィールドで動作するように作られています。

元のスクリプトとフォーム コードは次のとおりです。

function suggest(inputString){
    if(inputString.length == 0) {
        $('#suggestions').fadeOut();
    } else {
    $('#city').addClass('load');
        $.post("autosuggest.php", {queryString: ""+inputString+""}, function(data){
            if(data.length >0) {
                $('#suggestions').fadeIn();
                $('#suggestionsList').html(data);
                $('#city').removeClass('load');
            }
        });
    }
}

function fill(thisValue) {
    $('#city').val(thisValue);
    setTimeout("$('#suggestions').fadeOut();", 0);
}

複数の入力フィールドで動作するようにスクリプトを変更する方法は、フォーカスされたフォーム要素の ID を取得してから、次のようにすることだと思います。

function getFocusID() {
    // get the focused form field id here
}

if(focusedID == "city") {
    //Script for form field with "city" as id

    function suggest(inputString){
        if(inputString.length == 0) {
            $('#suggestions').fadeOut();
        } else {
        $('#city').addClass('load');
            $.post("autosuggest.php", {queryString: ""+inputString+""}, function(data){
                if(data.length >0) {
                    $('#suggestions').fadeIn();
                    $('#suggestionsList').html(data);
                    $('#city').removeClass('load');
                }
            });
        }
    }

    function fill(thisValue) {
        $('#city').val(thisValue);
        setTimeout("$('#suggestions').fadeOut();", 0);
    }
} // code for input id "city" END

// And now create if else statements for the other 4 input text fields, filling them with the code above.

私はここで正しいと思いますか?または、これを行うための他のより効率的な方法はありますか? これが正しいアプローチである場合、フォーカスされた入力テキスト フィールドの入力 ID を取得するにはどうすればよいですか?

4

1 に答える 1

1

それはactiveElementになります:

function getFocusID() {
    return document.activeElement.id;
}
于 2013-04-02T16:22:14.570 に答える