2012-09-26 2 views
0

저는 텍스트 상자에 최대 50 자까지 입력 할 수 있습니다.이를 위해 preventDefault를 지정했습니다. 우리는 Ctrl + A를 누른 후 ABC는 텍스트 및 인쇄 ABC에서 모든 것을 erace시기 : 텍스트 상자의 텍스트 끝 부분에 포커스가 있습니다

if (!(event.ctrlKey && (event.which == 65 || event.which == 86 || event.which == 67 || event.which == 88)) 
       && (!(event.shiftKey && (event.which == 35 || event.which == 36))) 
       && (key != 8 && key != 37 && key != 39 && key != 46 && key != 36 && key != 35 && key != 33 && key != 34)) { 
        event.preventDefault(); 
       } 

하지만 지금은 요구 사항이

.
이 내가이 코드를 작성 달성하기 위해 ->

var focusItem = $('<input type="text">'); 
    function getSelText() { 
       var txt = ''; 
       //IE 
     var focusItem = $('<input type="text">'); 
     if (document.selection != undefined) { 
      focusItem.focus(); 
      var sel = document.selection.createRange(); 
      var rangeParent = sel.parentElement(); 
      txt = sel.text; 
      if (!(event.ctrlKey && (event.which == 65 || event.which == 86 || event.which == 67 || event.which == 88)) 
      && (!(event.shiftKey && (event.which == 35 || event.which == 36))) 
      && (key != 8 && key != 37 && key != 39 && key != 46 && key != 36 && key != 35 && key != 33 && key != 34)) { 
      //event.preventDefault(); 
      if (txt.length > 0 && ((key >= 65 && key <= 90) || (key >= 48 && key <= 57) || (key >= 97 && key <= 122))) { 
       sel.text = String.fromCharCode(key).toLowerCase(); 
       } 
       txt = sel.text; 
      } 
      }       
      return txt; 
     } 

내가 Ctrl 키를 누르면 + ABC는 다음의가 BCA로 인쇄하기 때 지금 상황이 .. 작업 만하고 있습니다. 무슨 일이 일어나는 : Ctrl 키를 누른 후 다음 a를 누르면 텍스트 상자에 인쇄되고 있지만 포커스가 텍스트보다 먼저 설정됩니다.
어떻게 처리해야합니까?
Windows 7, IE9, Visual Studio 2010을 사용하고 있습니다.
감사합니다.

답변

0

텍스트 상자의 끝 부분에 포커스를 설정하는 가장 쉬운 방법은 단지 자체에 텍스트 상자의 텍스트를 설정하는 것입니다 :

focusItem.val(focusItem.val()); 
+0

내가'경우 (txt.length을 focusItem의 값을 확인 했어요> 0 (키> = 97 && 키 <= 122))) { sel.text = String.fromCharCode && (키> = 65 && 키 <= 90) || (키) .toLowerCase(); } txt = sel.text; } '하지만 null을 반환합니다. –

+0

텍스트 박스의 ID가'myTextBox'이면'$ ('# myTextBox') .val ($ ('# myTextBox') .val())'을 실행하면 커서가 끝에 위치하게됩니다. 텍스트 상자의 값을 가져오고 해당 부분에 대한 선택 범위를 만들지 않아도됩니다. – Bill

+0

코드가 작동하지 않는 경우 ( –

관련 문제