1

http://www.dynatable.com/を使用しており、データをフィルタリングするための検索入力があります。問題は、Enterキーを押す/フォーカスを失うなどで機能し、文字を変更するたびに使用したいことです。

4

3 に答える 3

3

ニーズに合わせて dynatable を変更できます。jquery.dynatable.js(バージョン 0.3.1) の 1215 行目で、Enter キーを押すと検索が実行されます。エンターキーが押されるのを待たずに、これをキーアップに変更できます。デフォルトコード:

        $search
        .bind(settings.inputs.queryEvent, function() {
          obj.queries.runSearch($(this).val());
        })
        .bind('keyup', function(e) {
          if (e.which == 13) {
            obj.queries.runSearch($(this).val());
            e.preventDefault();
          }
        });

変更されたコード:

        $search
        .bind(settings.inputs.queryEvent, function() {
          obj.queries.runSearch($(this).val());
        })
        .bind('keyup', function(e) {
          obj.queries.runSearch($(this).val());
          e.preventDefault();
        });
于 2014-11-05T06:02:02.840 に答える
1

jquery.dynatable.js コードを次のように変更すると、必要なことが実行されます。また、検索入力ボックスを使用している場合は、検索入力ボックスを「x」でクリアすると結果が更新されます。クリアも機能する理由は、使用されているイベントが「キーアップ」または「変更」ではなく「入力」であるためです。詳細については、ドキュメントを参照してください。

入力イベントとは異なり、changeイベントは、要素の値が変更されるたびに必ずしも発生するわけではありません。

元のコード

$search
  .bind(settings.inputs.queryEvent, function() {
    obj.queries.runSearch($(this).val());
  })
  .bind('kepress', function(e) {
    if (e.which == 13) {
      obj.queries.runSearch($(this).val());
      e.preventDefault();
    }
  });

変更されたコード

$search
  .bind(settings.inputs.queryEvent, function() {
    obj.queries.runSearch($(this).val());
  })
  .bind('input', function(e) {
    obj.queries.runSearch($(this).val());
    e.preventDefault();
  });

注: nexuscreator からの回答に基づいています。非常に良い答え、ありがとうございました。

于 2018-04-13T05:45:22.507 に答える
0

私のために働いた:)

$search
    .bind(settings.inputs.queryEvent, function() {
      obj.queries.runSearch($(this).val());
    })
    .bind('keyup', function(e) {
      obj.queries.runSearch($(this).val());
      e.preventDefault();
    });
于 2014-11-17T04:06:40.060 に答える