javascript - 添加新字符并设置输入位置

标签 javascript jquery input

我需要执行以下操作,但目前还不知道如何操作:

我有一个<input type="text">我需要在用户输入第一个字符后立即添加 "-" ,并将光标放在长度上的下一个位置(第三个位置),以便用户可以继续输入

例如:

“G- <--- 用 jQuery 添加这个“-”符号,并将光标设置在其后面。

谢谢

编辑

这是我当前的代码。

$('#document').keypress(function(e){
    if(this.value.length == 1){     
               $(this).val($(this).val() + '-');
            }
});

它在用户键入后添加“-”符号。

我希望在用户键入第一个字符后,将“-”字符添加到字符串中。到目前为止,如果我输入“H”,我会得到“-H”,并且我想要“H-”。

最佳答案

试试这个: 您还需要检查键是否是退格键。如果是退格键,那么您应该跳过此事件。

现场演示:http://jsfiddle.net/5Y9mG/32/

$( document ).ready(function() {
    $("#my-input").keypress(function(e){
       if(e.keyCode != 8){ //check for backspace press
        var text = this.value;
        if(text.length ==1){
           this.value=text+'-'; 
         }
        }
     });
});

更新:
如果用户输入“-”并且输入字段有多个“-”字符,那么在删除该“-”之前,不允许用户输入其他字符
http://jsfiddle.net/5Y9mG/42/

$( document ).ready(function() {
    $("#my-input").keypress(function(e){
      if(e.keyCode != 8 && e.keyCode !=46) {
         var text = this.value;
        if(text.split("-").length > 2){ // check for double -
            alert("already exixts");
            return false;
         }       
        if(text.length ==1){
           this.value=text+'-'; 
         }
        }
     });
});

关于javascript - 添加新字符并设置输入位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21166316/

相关文章:

javascript - 当元素存在时,“classList”属性返回 null?

javascript - 在 history.pushState 中保存当前的 js 对象

jquery - 检查多个 DOM 值

javascript - 用图层覆盖整个页面

string - 如何使用 fmt.scanln 从以空格分隔的字符串中读取

python - 如何在Python中忽略空格读取下一个整数?

javascript - 在 Rails 中使用 ajax 渲染查询

javascript - 使用 browserify/envify 删除 process.env.NODE_ENV?

javascript - 从 MVC 返回时如何忽略 ' 符号。 document.insert 相邻

c++ - scanf() 为最后一行输入提供错误的输出