获取未在input元素的keyup上定义的函数

时间:2017-04-16 17:53:27

标签: javascript

鉴于下表(在w3schools稍微修改了这个版本)但搜索了所有列,我在文本框中输入值时出现C错误。另外,如何在搜索表格时保持表格标题不会消失?

HTML

searchAttorneys is not defined at HTMLInputElement.onkeyup

JS

<input type="text" id="search-attorneys" onkeyup="searchAttorneys()" placeholder="Search for names.." title="Type in a name">

JSFIDDLE:LINK

2 个答案:

答案 0 :(得分:0)

将您的jsfiddle javascript加载类型设置为nowrap(任一)。另外2个(onload / ondomready)将函数包装在另一个函数中,使其对你的内联onkeyup不可见。

答案 1 :(得分:0)

HTML

<input type="text" id="search-attorneys" placeholder="Search for names.." title="Type in a name">

的Javascript

$(document).ready(function(){
  $('search-atorneys').on('keyup', function(){
    var input, filter, table, tr, td, i;
    input = document.getElementById("search-attorneys");
    filter = input.value.toUpperCase();
    table = document.getElementById("attorneys");
    tr = table.getElementsByTagName("tr");
    for (i = 0; i < tr.length; i++) {
      tds = tr[i].getElementsByTagName("td");
      var found = false;
      for (j = 0; j < tds.length; j++) {
        td = tds[j];
        if (td) {
          if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
            found = true;
            break;
          }
        }
      }
      if (found) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    }
  });
});

从内部执行而不是从内部执行html主要是更好的方法。