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을 사용하고 있습니다.
감사합니다.
내가'경우 (txt.length을 focusItem의 값을 확인 했어요> 0 (키> = 97 && 키 <= 122))) { sel.text = String.fromCharCode && (키> = 65 && 키 <= 90) || (키) .toLowerCase(); } txt = sel.text; } '하지만 null을 반환합니다. –
텍스트 박스의 ID가'myTextBox'이면'$ ('# myTextBox') .val ($ ('# myTextBox') .val())'을 실행하면 커서가 끝에 위치하게됩니다. 텍스트 상자의 값을 가져오고 해당 부분에 대한 선택 범위를 만들지 않아도됩니다. – Bill
코드가 작동하지 않는 경우 ( –