Показать сообщение отдельно
  #2 (permalink)  
Старый 17.06.2023, 09:04
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Круглые скобочки на конце функции означают её вызов. Если вы где-то в коде написали func() - в этом месте будет не функция, а то что она вернула.

function func() {
  return 'value'
}

$("body").on("input", "#name", func());
// тоже самое что
$("body").on("input", "#name", 'value');
Если функция ничего не возвращает(нет return) - то там будет undefined.

Если бы тебе не нужны были особые параметры для каждого случая - можно было бы ограничиться красиво:
$("body").on("input", "#tel", autocomplete1);


Но раз они нужны, то либо делать так:
function autocomplete1 (btnName, nameTd) {
  return function() {
    if($(this).val().length > 1){
      $.ajax ({
        url: ajaxFile,
        type: "POST",
        data: ({
          toima: btnName,
          inpVal: $(this).val()
        }),
        dataType: "html",
        success: function(data) {
          $(".nameListTop").remove();
          $(nameTd).append(data);
        }
      });
    }
  }
}
$("body").on("input", "#name", autocomplete1 ("nameList", "#nameTd"));
$("body").on("input", "#tel", autocomplete1 ("telList", "#telTd"));


Либо доставать эти параметры внутри:
var paramsTable = {
  name: ["nameList", "#nameTd"],
  tel: ["telList", "#telTd"]
}

function autocomplete1 () {
  var [btnName, nameTd] = paramsTable[this.id];
  if($(this).val().length > 1){
    $.ajax ({
      url: ajaxFile,
      type: "POST",
      data: ({
        toima: btnName,
        inpVal: $(this).val()
      }),
      dataType: "html",
      success: function(data) {
        $(".nameListTop").remove();
        $(nameTd).append(data);
      }
    });
  }
}
$("body").on("input", "#name, #tel", autocomplete1);
__________________
29375, 35

Последний раз редактировалось Aetae, 17.06.2023 в 09:16.
Ответить с цитированием