2009-12-08 3 views

답변

20

IE는 Firefox, Opera 및 Chrome보다 커서 위치를 설정할 때 다른 접근 방식을 사용합니다. 도우미 기능을 만드는 것이 좋습니다. 그러면 도움이 될 것입니다. 나는 이것을 자신의 필요에 사용한다.

function setCursor(node,pos){ 

    node = (typeof node == "string" || node instanceof String) ? document.getElementById(node) : node; 

    if(!node){ 
     return false; 
    }else if(node.createTextRange){ 
     var textRange = node.createTextRange(); 
     textRange.collapse(true); 
     textRange.moveEnd(pos); 
     textRange.moveStart(pos); 
     textRange.select(); 
     return true; 
    }else if(node.setSelectionRange){ 
     node.setSelectionRange(pos,pos); 
     return true; 
    } 

    return false; 
} 

마지막으로 onfocus 핸들러에서 호출하는 것입니다.

Goodluck

+0

Hai 노드 란 무엇입니까 textboxId –

+0

노드가 DOM 인스턴스이지만 ID로 작업해야하는 경우 DOM 인스턴스를 가져올 추가 코드 라인을 추가 할 수 있습니다. – nemisj

+0

DSharma가 제안한대로 (편집을 롤백 했으므로 코멘트 여야합니다.) : 모든 브라우저에서 작동하도록하려면 커서를 입력 텍스트의 시작 부분에 놓으려면 함수 호출에 시간 초과를 추가하십시오. 예 :'window.setTimeout (function() {setCursor (node, 0);}, 1);' – thomaux

0

$("#textbox").selectionStart=14 힘이 파이어 폭스, 오페라, 크롬 작동에 수 있지만 PS

IE

에 대한 확실하지 : 제대로 작동하려면 텍스트 상자에 14> 자 이미 길이가 있어야합니다.

+0

마스크 편집 텍스트 상자를 사용합니다 ... –

+0

텍스트 상자가 비어있는 것으로 표시하는 것은 해결책이 있습니까 –

+0

네, 입력 상자와 텍스트 영역에 대해, 당신이 서식있는 텍스트 상자 인 경우, 그다지 잘 모르겠습니다. 미안합니다. – YOU

관련 문제