将可动态搜索绑定到onchange

时间:2014-04-14 12:45:31

标签: dynatable

我正在使用http://www.dynatable.com/并且有一个用于过滤数据的搜索输入。问题是它可以打击输入/失去焦点等,我想在每次更改字母时使用它。

3 个答案:

答案 0 :(得分:3)

您可以更改dynatable以满足您的需求。在jquery.dynatable.js(版本0.3.1)的第1215行,在enter keypress上执行搜索。您可以将此更改为keyup,而无需等待按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();
        });

答案 1 :(得分:1)

对jquery.dynatable.js代码的以下更改将执行您想要的操作,并且还会在使用" x"清除搜索输入框时更新结果。如果你正在使用它。清除也会起作用的原因是使用的事件是"输入"而不是" keyup"或者"更改",原因详见documentation

  

输入事件不同,更改事件不一定会被触发   每个都改变一个元素的值。

原始代码

$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的回答。非常好的答案,非常感谢你。

答案 2 :(得分:0)

为我工作:)

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