13

次のスクリプトを使用して、ユーザーの入力に応じて、html5 データリストを動的に更新しています。

$('#place').on('keyup', function() {
    $.post('content/php/autocomp.php', { field: 'plaats', val: $('#place').val() }).done(function(response) {
        $('#autocomp-places').html(response);
    });
});

データリストがすぐに表示されないことが多いことを除いて、これはうまく機能します。要素を検査すると、html はそこにありますが、データリストが更新されるとすぐに表示されません。どうすれば強制的に表示できますか?

記録のために:それは機能します...常に新しい提案がすぐに表示されることを願っています。

4

3 に答える 3

1

ajax の done メソッドの代わりに success を使用して、もう一度お試しください。

$('#place').on('keyup', function () {
    $.post('content/php/autocomp.php', {
        field: 'plaats',
        val: $('#place').val()
    }).success(function (response) {
        $('#autocomp-places').html(response);
    });
});
于 2015-11-05T12:26:24.600 に答える
1

まず、 jQuery UI autocompleteなど、既に利用可能なソリューションの 1 つを使用してみます。これにより、開発時間が短縮され、コードに典型的なバグがなくなります (将来、他の誰かの仕事から利益を得ることは言うまでもありません)。

本当に独自のバージョンを作成したい場合は、リストがクリアされ、次のコードが再入力されていることを確認してください。

$('#place').on('keyup', function() {
  var posting = $.post('content/php/autocomp.php', { field: 'plaats', val: $('#place').val() });
  posting.done(function(data) {
    $('#autocomp-places').empty().append(data);
  });
});
于 2015-11-05T18:43:25.973 に答える