Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.05.2014, 01:31
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

Поиск по таблице - вывод
Приветствую!
Провожу поиск по таблице
$(function() { 
  var theTable = $('table.mytable')
  $("#filter").keyup(function() {
    $.uiTableFilter( theTable, this.value );
  })
 $('#filter-form').submit(function(){
    theTable.find("tbody > tr:visible > td:eq(1)").mousedown();
    return false;
  }).focus(); 
});

<form id="filter-form"><input name="filter" id="filter" type="text"></form>

При вводе параметров запроса моментально отображается нужная строка.
Подскажите как сделать так, чтобы если совпадений не найдено выводилось сообщение?
Ответить с цитированием
  #2 (permalink)  
Старый 13.05.2014, 04:49
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Смотреть в API этого uiTableFilter или считать количество скрытых строк в таблице.
Ответить с цитированием
  #3 (permalink)  
Старый 13.05.2014, 06:09
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

TableFIlter
jQuery.uiTableFilter = function(jq, phrase, column, ifHidden){
  var new_hidden = false;
  if( this.last_phrase === phrase ) return false;

  var phrase_length = phrase.length;
  var words = phrase.toLowerCase().split(" ");

  // these function pointers may change
  var matches = function(elem) { elem.show() }
  var noMatch = function(elem) { elem.hide(); new_hidden = true }
  var getText = function(elem) { return elem.text() }

  if( column ) {
    var index = null;
    jq.find("thead > tr:last > th").each( function(i){
      if( $(this).text() == column ){
        index = i; return false;
      }
    });
    if( index == null ) throw("given column: " + column + " not found")

    getText = function(elem){ return jQuery(elem.find(
      ("td:eq(" + index + ")")  )).text()
    }
  }

  // if added one letter to last time,
  // just check newest word and only need to hide
  if( (words.size > 1) && (phrase.substr(0, phrase_length - 1) ===
        this.last_phrase) ) {

    if( phrase[-1] === " " )
    { this.last_phrase = phrase; return false; }

    var words = words[-1]; // just search for the newest word

    // only hide visible rows
    matches = function(elem) {;}
    var elems = jq.find("tbody > tr:visible")
  }
  else {
    new_hidden = true;
    var elems = jq.find("tbody > tr")
  }

  elems.each(function(){
    var elem = jQuery(this);
    jQuery.uiTableFilter.has_words( getText(elem), words, false ) ?
      matches(elem) : noMatch(elem);
  });

  last_phrase = phrase;
  if( ifHidden && new_hidden ) ifHidden();
  return jq;
};

// caching for speedup
jQuery.uiTableFilter.last_phrase = ""

// not jQuery dependent
// "" [""] -> Boolean
// "" [""] Boolean -> Boolean
jQuery.uiTableFilter.has_words = function( str, words, caseSensitive )
{
  var text = caseSensitive ? str : str.toLowerCase();
  for (var i=0; i < words.length; i++) {
    if (text.indexOf(words[i]) === -1) return false;
  }
  return true;
}
Ответить с цитированием
  #4 (permalink)  
Старый 14.05.2014, 18:05
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

Сообщение от jsnb
считать количество скрытых строк в таблице.
Можно поподробнее?
Ответить с цитированием
  #5 (permalink)  
Старый 14.05.2014, 18:51
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от cript Посмотреть сообщение
Можно поподробнее?
http://api.jquery.com/hidden-selector/
Если все строки скрыты - значит совпадений нет.

Последний раз редактировалось jsnb, 14.05.2014 в 18:59.
Ответить с цитированием
  #6 (permalink)  
Старый 14.05.2014, 22:06
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

Что делаю не так?
var hiddenElements = theTable.find("tbody > tr:visible > td:eq(1)").mousedown();
 if (hiddenElements.length == '') { alert('22'); }
Ответить с цитированием
  #7 (permalink)  
Старый 15.05.2014, 04:05
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от cript Посмотреть сообщение
Что делаю не так?
var hiddenElements = theTable.find("tbody > tr:visible > td:eq(1)").mousedown();
 if (hiddenElements.length == '') { alert('22'); }
Я вообще не понимаю, что ты делаешь в принципе. Нафига там mousedown? Что ты пытаешься найти через это
theTable.find("tbody > tr:visible > td:eq(1)")

?
Ответить с цитированием
  #8 (permalink)  
Старый 15.05.2014, 06:21
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

Сообщение от jsnb Посмотреть сообщение
Я вообще не понимаю, что ты делаешь в принципе. Нафига там mousedown? Что ты пытаешься найти через это
theTable.find("tbody > tr:visible > td:eq(1)")

?
Хотя бы одно совпадение из таблицы
Ответить с цитированием
  #9 (permalink)  
Старый 15.05.2014, 07:50
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от cript Посмотреть сообщение
Хотя бы одно совпадение из таблицы
Ниче не понял, нафига там td:eq(1) и mousedown то? Зачем сравнивать length с пустой строкой? Почему hiddenElements если используется селектор :visible? Зачем вообще находить видимые элементы, если задача стояла в том, чтобы узнать скрыты все или нет? Не проще найти все скрытые и сравнить с количеством строк в таблице? Ты что ли наугад код меняешь?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Живой поиск JQUERY + AJAX + PHP + MYSQL dimi007 AJAX и COMET 2 22.07.2014 13:50
Поиск по БД и вывод без обновления страницы BashOrgRu Общие вопросы Javascript 2 20.08.2013 11:33
фильтрация и поиск в таблице htm FedyaLutkovski Элементы интерфейса 0 28.12.2012 20:11
Поиск в тексте javascript jQuery 3 31.05.2011 11:40
Изменение цвета ячейки в таблице, при наведении на строку другой таблицы Psychosonic Общие вопросы Javascript 12 24.11.2010 16:44