Автоматическое заполнение jQuery проверяет выбранное значение

Добавьте свой расчет в Application class onCreate () method. И добавьте свое решение об активности в Application class.

22
задан Shiladitya 23 March 2019 в 03:44
поделиться

3 ответа

ОБНОВЛЕНИЕ: Это должно сработать. Я загружаю список имен в массив с именем ListOfNames, он используется в событии onBlur () для проверки введенного имени в данных. Возможно, вам придется сделать некоторые настройки, но я думаю, что это должно сделать то, что вы ищете.

var listOfNames = [];
$(document).ready(function(){
   $.get("fetchNames.asp", function(data){
     listOfNames = data.split("\r\n");    
   });
   $(".suggest").autocomplete("fetchNames.asp", {
        matchContains:false,
        minChars:1, 
        autoFill:false,
        mustMatch:false,
        cacheLength:20,
        max:20
    });
    $("#tbxName").blur(function(){
        if(!listOfNames.containsCaseInsensitive(this.value)){
          alert("Invalid name entered");
        }
    });        
});

Array.prototype.containsCaseInsensitive = function(obj) {
  var i = this.length;
  while (i--) {
    if (this[i].toUpperCase() === obj.toUpperCase()) {
      return true;
    }
  }
  return false;
}
4
ответ дан 29 November 2019 в 05:51
поделиться

Я думаю, вместо того, чтобы писать свою собственную функцию для проверки совпадения данных, вы можете просто вызвать search () . Если result () вызывается с нулевым параметром data , то вы знаете, что автозаполнение не использовалось и вызывая search () при размытии, вы гарантированно получите хотя бы один вызов result () .

Я опубликовал этот код для аналогичного вопроса , он может помочь и здесь.

autocompleteField.result(function(event, data, formatted) {
    if (data) {
        //auto-complete matched
        //NB: this might get called twice, but that's okay
    }
    else {
        //must have been triggered by search() below
        //there was no match
    }
});

autocompleteField.blur(function(){
    autocompleteField.search(); //trigger result() on blur, even if autocomplete wasn't used
});
9
ответ дан 29 November 2019 в 05:51
поделиться

Я использую глобальную структуру данных для отслеживания значений, которые были найдены

var ac_sent = {};

обработчик события .result() вызывается перед обработчиком события .change(), поэтому в . result( event, data, formatted ) я добавляю данные в структуру:

ac_sent[ data ] = true;

затем в обработчике события .change( event) я проверяю, есть ли элемент в ac_sent[ data ], а если нет, я знаю, что слово не было найдено:

$( "#textbox" ).change( function( event ) {

  var data = event.target.value;

  if ( !ac_sent[ data ] ) {
    // result was not found in autocomplete, do something...
    ac_sent[ data ] = true;  // remember that we processed it
  }

  return false;
});
0
ответ дан 29 November 2019 в 05:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: