2011-10-13 7 views
0

저는 zend 프로젝트에서 jQuery 자동 완성을 사용하고 있습니다. 입력은 데이터베이스에서 카테고리 목록을 표시합니다. 방금 양식이 사용자가 입력 한 내용과 상관없이 제출할 것임을 알았습니다. 필자는 필드 유효성을 검사하여 데이터베이스/자동 완성 옵션 만 선택할 수있는 방법을 모색했습니다. 나는 내 JS는 다음과 같습니다jQuery 자동 완성 기능을 사용하여이 코드를 통합하는 방법은 무엇입니까?

var src = ['hi', 'bye', 'foo', 'bar']; 

$("#auto").autocomplete({ 
    source: function(request, response) { 
     var results = $.ui.autocomplete.filter(src, request.term); 

     if (!results.length) { 
      this.element.val(''); 
     } 
     response(results); 
    } 
}); 

작동이 코드를 발견, 난 자동 완성에서 오는 우리의 변수를 확인하려면 위의 코드를 사용하는 방법을 모르겠어요. 어떤 도움을 주셔서 감사합니다

$(function() { 
    var url = "http://domain.com/account/ajaxautocomplete?format=json"; 
    $("#autotest").autocomplete({ 
     source: url, 
     minLength: 2 
     }); 
}); 

답변

1

아마 당신은 틀린 접근법을 사용하고 있습니다. 자동 완성 대신 select 태그를 사용할 수 있습니다. 그런 다음 사용자는 유효한 선택 만 할 수 있으며 선택할 수있는 항목을 알 수 있습니다. 그러나 자동 완성 기능을 계속 사용하려면 자동 완성 도구와 별도로 입력을 확인해야합니다 (유효성 검사를위한 것이 아닙니다). 데이터를 보내기 전에 또는 키 - 이벤트 리스너를 사용하여 데이터를 확인할 수 있습니다.

+0

자동 완성의 유일한 이유는 몇천 가지 범주가 있기 때문에 사용자를 필터링하고 신속하게 범주를 선택할 수있는 방법을 찾고 있습니다. – Anagio

+0

내가 생각할 수있는 유일한 해결책은 keyup 이벤트 리스너를 추가하고 입력 된 입력이 올바른지 확인하는 것입니다. 그렇지 않으면 유효 할 때까지 입력 끝에서 문자를 제거하고 새로운 유효한 문자열을 설정해야합니다. 그래서 그 분야에 다른 것이 쓰여지는 것을 막을 수 있습니다. – styrr

+0

방금 ​​필터 옵션이있는 위젯을 찾으 셨습니다. 필요한 항목을 수행하고 사용자가 카테고리를 선택하고 목록을 필터링하도록 강요했습니다. http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/ 선택 방법을 찾지 않을 것이라고 생각했습니다. 감사합니다. – Anagio

관련 문제