Круглые скобочки на конце функции означают её вызов. Если вы где-то в коде написали 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);