2010-12-29 5 views
2

자동 완성을 허용하는 코드를 찾고 있는데, 지정된 데이터 배열 내에서만 가능합니다. 따라서 자동 완성 배열 내의 데이터 만 입력 할 수 있습니다. 어디서부터 시작해야할지 모르겠습니다.텍스트 필드 자동 완성 - 자동 완성 옵션 내에서만 제출 허용

감사합니다.

+1

처음에는 어떻게하면 효율적인 작업 코드를 얻을 수 있습니까? Google은 귀하의 친구입니다 :) –

답변

2

jQuery UI Autocomplete을 사용하는 다음 솔루션으로 충분해야합니다. 물론 특정 요구 사항에 따라 약간의 조정이 필요할 수 있습니다.

마크 업 :

<input id="autocomplete"/> 
<br /> 
<input id="submit" type="submit" disabled="disabled"/> 

스크립트 :

var source = ['One', 'Two', 'Three', 'Four']; 

$("input#autocomplete").autocomplete({ 
    source: source, 
    select: function(event, ui) { 
     $("#submit").removeAttr("disabled"); 
    } 
}).keyup(function() { 
    var $parentContext = $(this); 
    var matches = $.grep(source, function(n, i) { 
     return $parentContext.val().toLowerCase() == n.toLowerCase(); 
    }); 
    $("#submit").attr("disabled", !matches.length); 
}); 

데모 : http://jsfiddle.net/karim79/Ezbns/

추가 읽기 :

+1

이 방법이 효과적 일 수 있지만 유효성 검사를 위해 Javascript를 사용하지 마십시오. Javascript가 쉽게 우회되고 해커가 유일한 유효성 검사 인 경우 악의적 인/잘못된 정보를 쉽게 제출할 수 있습니다. 반드시 서버 측 검증을 구현해야합니다. – sethvargo

+0

@Seth - 이것은 서버 측 유효성 검사의 대체품이라고 결코 제안하지 않았습니다. 방금 요청한 것을 수행하기 위해 약간의 클라이언트 측 스크립트를 준비했습니다. 그러나 분명히 그렇게하지 않았으므로 지적한대로 좋았습니다. – karim79

+0

사과 - 나는 당신의 대답이 틀렸다고 말하는 것이 아닙니다. 죄송 해요. 난 단지 @user가 이것이 완전한 해결책이 아니라는 것을 알고 싶었습니다. 나는 대답을 게시하기를 원하지 않았다. ( – sethvargo