2012-06-08 3 views
4

jquery-ui 자동 완성으로 되돌아 가야 할 대답이 하나만있는 경우 자동으로 답변을 선택하고 싶습니다.jquery-ui 자동 완성 답변 만 선택

+0

답변을 찾았 기 때문에이 글을 게시 할 예정입니다.하지만 누구에게 더 좋은 의견이 있는지 궁금합니다. –

답변

6

는 나는 "열기"콜백 자동 완성을 설정 :

jQuery('#people_new_user input[type="text"]').each(
    function(index, element) { 
     var field = element.name; 
     jQuery(element) 
      .autocomplete({ 
      source: "/cf/AutoComplete/People?current="+field, 
      open: openUser 
     }); 
    }); 

그리고 오픈 콜백 나는 경우를 하나 개의 결과 만이 있는지, 그리고 선택 찾습니다

function openUser(event, ui) 
{ 
    // Try to select the first one if it's the only one 
    var $children = jQuery(this).data('autocomplete').menu.element.children(); 
    if ($children.size() == 1) 
    { 
    $children.children('a').mouseenter().click(); 
    } 
} 
+0

'children' 변수 앞에'$'기호가 있습니까? –

+1

@DmytroZarezenko jQuery 객체가 있으면 변수 이름 앞에 $를 붙이는 것이 관례입니다. –

+1

이'.data'는 정의되지 않았습니다. –

0

많은 감사의 말씀을드립니다. 누군가에게 도움이되는 경우 IE10에서 처음 사용할 때 문제가있었습니다. IE8, Chrome 및 Firefox에서 항상 정상적으로 작동했습니다. 웹 페이지가 있었기 때문에

이 단순히 밝혀졌다 발견되지 회원 :

는 IE10에서 그것과 jQuery(this).data('autocomplete').menu.element.children() 줄에 실패이 문제를 해결 (그리고 여전히 IE8에서 잘 작동 제거 <meta http-equiv="X-UA-Compatible" content="IE=7"/> ).

하지만이 사실을 알아 차리기 전에 jquery-1.11.1.min.js (1.6.4) 및 jquery-ui-1.11.0 (1.8.16)으로 이동하지 못했습니다. .

관련 문제