Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何只允许在输入字段的开头输入文本,并始终附加文本_Javascript_Jquery - Fatal编程技术网

Javascript 如何只允许在输入字段的开头输入文本,并始终附加文本

Javascript 如何只允许在输入字段的开头输入文本,并始终附加文本,javascript,jquery,Javascript,Jquery,我以前有一个要求,总是在文本输入字段中输入的任何内容前加上一些静态文本,并且永远不允许删除这些静态文本。我找到了一个非常有效的解决方案 我的需求没有改变,我需要在文本框中输入的任何内容后面附加一些静态文本。我希望静态文本始终显示在文本框中,并将输入的任何文本置于静态文本之前。理想情况下,每当用户单击输入或在输入中添加选项卡时,光标将自动放置在文本输入中的“零位” 这里有一个提琴,它首先显示了前置文本的工作示例,然后是附加文本的非工作示例: 在第二个示例中开始键入时,您将看到只有最后键入的字符显

我以前有一个要求,总是在文本输入字段中输入的任何内容前加上一些静态文本,并且永远不允许删除这些静态文本。我找到了一个非常有效的解决方案

我的需求没有改变,我需要在文本框中输入的任何内容后面附加一些静态文本。我希望静态文本始终显示在文本框中,并将输入的任何文本置于静态文本之前。理想情况下,每当用户单击输入或在输入中添加选项卡时,光标将自动放置在文本输入中的“零位”

这里有一个提琴,它首先显示了前置文本的工作示例,然后是附加文本的非工作示例:

在第二个示例中开始键入时,您将看到只有最后键入的字符显示在框的开头

值得指出的是,我实现它们的方式之间的一个细微差别是,在工作示例中,我使用了“indexOf”:


另一种方法是:

$(document).ready(function() {
  $('#append').on("input", function(e) {
     var s = this.value.replace(" - Student Worker", "");
     this.value = s + " - Student Worker";
  });
});

这太完美了!!!!非常感谢你!!!!我早该知道会有另一个戴维斯来救我dandavis,正如我提到的,这个解决方案很好,但我确实看到了一些问题,我想知道你是否知道如何解决。首先,我可以在静态文本(“学生工作者”)的中间点击,然后开始在那里打字,并且不正确地追加。第二,如果我在文本输入字段中的任何时候按Backspace键,每次按Backspace键都会出现“-Student Worker”。有没有关于如何解决这些问题的想法?下面是一段视频,展示了这个问题:
$(document).ready(function() {
$('#append').keyup(function(e) {
  if (this.value.length < 17) {
    this.value = ' - Student Worker';
  } else if (this.value.lastIndexOf(' - Student Worker') !== 17) {
    this.value = String.fromCharCode(e.which) + ' - Student Worker';
  }
});
});
   Doug
$(document).ready(function() {
  $('#append').on("input", function(e) {
     var s = this.value.replace(" - Student Worker", "");
     this.value = s + " - Student Worker";
  });
});