2013-05-17 1 views
2

here과 같이 jQuery UIAutoCompleteCombobox 옵션을 사용하고 있습니다. 이렇게하면 입력을 시작할 때 표시된 결과가 즉시 필터링되기 시작하지만 요소가 이미 선택되어 있으면 수동으로 내용을 제거하지 않고 입력하면 문자열에 추가되고 일반적으로 아무것도 찾을 수 없습니다.jQuery UI로 생성 된 입력 요소의 초점에 맞게 텍스트 선택

입력 필드가 포커스를받을 때마다 기본적으로 텍스트를 선택하고 싶지만 스크립트에 논리를 추가 할 위치를 찾는 데 문제가 있습니다.

여기에이 예제가 포함 된 jsFiddle이 있습니다.

//Select all text in Cost Rate Text Boxes when they have focus 
$(document).ready(function() { 
    $(".CostRateTextBox").live('mouseup', function() { 
     $(this).select(); 
    }); 
}); 

입력 상자가 된 스크립트의 _createAutocomplete 기능이된다 : 그것은 초점을 접수에 때

일반적으로는, 입력 요소의 텍스트를 선택, 당신은 같은 this에서, SO 질문 다음을 실행할 수 있습니다 만들어진. 다음 행에서이 작업을 수행 할 수 있습니까?() (라이브 사용하지 않는) 입력을 만들 때과 같이,

.tooltip({ 
      tooltipClass: "ui-state-highlight" 
    }).focus(); 

Check Fiddle

+0

그냥'$ ('input')을 사용하십시오. focus()' –

답변

4

이벤트 처리기를 추가 :

this.input = $("<input>") 
+0

Cool..works great .. (y) –

+0

'mousedown'도 작동합니다. 내 의견으로는 누를 때부터 누를 때까지 지연이 없으므로 더 잘 작동합니다. 왜'mouseup'을 제안했는지 물어봐도 될까요? 고마워요 : 편집 : 좋아, 그것을 발견, 마우스 업 IE에서 작동, mousedown 않습니다. : / – drinu16

2

코드에 이것을 추가 :

this.input = $("<input>") 

      .appendTo(this.wrapper) 
      .val(value) 
      .attr("title", "") 
      .addClass("custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left") 
      .autocomplete({ 
       delay: 0, 
       minLength: 0, 
       source: $.proxy(this, "_source") 
      }) 
      .tooltip({ 
       tooltipClass: "ui-state-highlight" 
      }).on('mouseup', function() { 
       $(this).select(); 
      }); 

FIDDLE

그리고 예, 선택 작업을하려면 mouseup을 사용해야합니다.

+0

필드 안으로 마우스를 가져 가면 탭으로 이동할 때만 작동하지 않는 것 같습니다. – KyleMit

관련 문제