Javascript 如何只允许在输入字段的开头输入文本,并始终附加文本
我以前有一个要求,总是在文本输入字段中输入的任何内容前加上一些静态文本,并且永远不允许删除这些静态文本。我找到了一个非常有效的解决方案 我的需求没有改变,我需要在文本框中输入的任何内容后面附加一些静态文本。我希望静态文本始终显示在文本框中,并将输入的任何文本置于静态文本之前。理想情况下,每当用户单击输入或在输入中添加选项卡时,光标将自动放置在文本输入中的“零位” 这里有一个提琴,它首先显示了前置文本的工作示例,然后是附加文本的非工作示例: 在第二个示例中开始键入时,您将看到只有最后键入的字符显示在框的开头 值得指出的是,我实现它们的方式之间的一个细微差别是,在工作示例中,我使用了“indexOf”:Javascript 如何只允许在输入字段的开头输入文本,并始终附加文本,javascript,jquery,Javascript,Jquery,我以前有一个要求,总是在文本输入字段中输入的任何内容前加上一些静态文本,并且永远不允许删除这些静态文本。我找到了一个非常有效的解决方案 我的需求没有改变,我需要在文本框中输入的任何内容后面附加一些静态文本。我希望静态文本始终显示在文本框中,并将输入的任何文本置于静态文本之前。理想情况下,每当用户单击输入或在输入中添加选项卡时,光标将自动放置在文本输入中的“零位” 这里有一个提琴,它首先显示了前置文本的工作示例,然后是附加文本的非工作示例: 在第二个示例中开始键入时,您将看到只有最后键入的字符显
另一种方法是:
$(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";
});
});