이 오류 : "잡히지 않은 TypeError : 문자열이 함수가 아닙니다."는 내가하려고하는 Ajax 호출에서 반환됩니다.잡히지 않은 TypeError : 문자열이 함수가 아닙니다. - Ajax 호출시
코드는 다음과 같습니다
$('input.js-nome-produto-servico').live("keyup", function(ed, h){
var $campo = ed.currentTarget;
$campo.autocomplete({
source: "<%=Rails.application.routes.url_helpers.busca_todos_produtos_servicos_por_nome_comercial_produto_servico_oportunidades_path%>?nome="+$campo.value,
minLength: 2,
change: function(event, ui) {
bindLoadingAnimation();
},
select: function(event, ui) {
preencheCamposCliente(campo);
}
});
});
오류에 $ campo.autocomplete에 상승하고있다.
는 내가 같은 호출해야합니다 알고
$("#field-id").autocomplete({ .........
을하지만 같은 방식에 동일한 "의 keyup"이벤트에 응답하고 같은 클래스 (JS-놈-produto-를 사용해야하는 여러 필드가 servico).
그래서 나는 keyup 함수 (ed)에서 DOM 객체 (입력)를 얻으려고했다. 디버거를 호출하면 변수 $ campo에 올바른 객체가 있지만 자동 완성이 작동하지 않습니다.
여기에 JS/JQuery 개념이없는 것 같습니다. 아무도 나에게 올바른 방법을 줄 수 있습니까?
대단히 감사합니다!
'var $ campo = $ (ed.currentTarget);'그러나 여전히 당신은 jQuery 플러그인을 keyup 이벤트 핸들러에 바인딩해서는 안됩니다. 나는 당신이 단지'$ ('input.js-nome-produto-servico'). 자동 완성 ({...})'을 필요로한다고 생각한다. '.live ("keyup"'. – dfsq
이 없어도 사용자가 필드에 입력하는 문자가 필요하므로 자동 완성 소스를 채울 결과를 검색 할 수 있습니다. 이것이 내가 Live 함수를 호출하는 이유입니다. – Laerte