2013-03-07 72 views
1

在输入文本框中的值时,当我在输入值之间输入值时,光标会自动移动到值的末尾。如何在使用javascript键入时避免光标移回

<!DOCTYPE html> 
<html> 
    <body> 
     <script> 
     function truncate(x) { 
      if(x.value.length > 0) 
      {    
       x.value = x.value.replace(/^\s+/, ''); 
      } 
     } 
     </script> 

     <input id="otherText" onkeyup="javascript:truncate(this);" maxlength="12" type="text"/> 

    </body> 
</html> 
+0

[更改输入值的可能重复,同时还允许用户键入](http://stackoverflow.com/questions/72171 76 /改变输入值,而-静止允许最用户到型);我认为有更多类似的,但我找不到它们 – Bergi 2013-03-07 14:07:00

回答

0
<!DOCTYPE html> 
<html> 
<body> 



<script> 
function truncate(x){ 
var val = document.getElementById("otherText"); 

var inputTextValue = val.value; 
if(inputTextValue.length>0) 
    { 

    val.value = ''; 

} 
} 
</script> 
<input id="otherText" onkeyup="javascript:truncate(this);" maxlength="12" type="text"/> </body> 
</html> 

请注意,我不知道如何更换与特定的正则表达式的字符串。但上面的代码只是用一个空字符串替换。您可以根据您的要求进行修改。

+0

没有它将所有的值替换为空,所以我们不能使用这个 – user2143039 2013-03-07 13:20:59

0

试试这个

http://jsfiddle.net/DDQSU/2/

$(function() { 

    function setCaretPosition(elemId, caretPos) { 
     var elem = elemId 
     if(elem != null) { 
     if(elem.createTextRange) { 
      var range = elem.createTextRange(); 
      range.move('character', caretPos); 
      range.select(); 
     } 
     else { 
      if(elem.selectionStart) { 
       elem.focus(); 
       elem.setSelectionRange(caretPos, caretPos); 
      } 
      else 
       elem.focus(); 
     } 
    } 
} 

$("#otherText").on("keyup", function(event){ 
          var x = this,sel=x.selectionStart; 
          if(x.value.length > 0) 
          {    
           x.value = x.value.replace(/^\s+/g, ''); 
          } 
          setCaretPosition(x,sel); 
         }) 
       }) 

该解决方案已经摆在那里,在 Set keyboard caret position in html textbox

这个问题是一个重复Javascript, avoid cursor moving at textbox end

相关问题