我对此脚本有疑问,我想用实时的特定字母替换输入字段中输入的任何内容,并在字段中使用Hello World
。
<input id="inputID" type="text" value="" maxlength="11"/>
$('#inputID').keyup(function(e){
var cv=["h","e","l","l","o"," ","w","o","r","l","d",""];
var i=$('#inputID').val();
for (j=0;j<11;j++){
this.value = this.value.replace(i[j],cv[j]);
}
});
这个脚本在我写得很慢时很有效,但在我写得很快时则不行。 谢谢你的帮助
答案 0 :(得分:3)
试试这种方式 :
$('#inputID').keyup(function(e){
var cv = 'hello world';
this.value = cv.substr(0, this.value.length);
});
的 See the working demo. 强> 的
答案 1 :(得分:1)
xdazz的解决方案是正确的(他打败了我)
我认为显示一个完全不依赖于jQuery的解决方案可能会有好处,因此不想依赖它的用户也会受益。
document.getElementById('inputID').onkeyup = function () {
var cv = "hello world"; // Your 'correct value'
//Set the value to a substring of cv at the current length
this.value = cv.substring(0, this.value.length);
};
答案 2 :(得分:0)
这与我在关键字上维护事件的速度一样快:
var hw = "hello world";
$('#inputID').keyup(function(e){
this.value = hw.substring(0, this.value.length);
});
<强> Demo 强>
编辑:我很惊讶三个人提出了几乎完全相同的解决方案。真的很酷。
编辑2:我稍微调整一下,使其替换最初用空格键入的字符,以帮助减轻被替换字母的效果。
var hw = "hello world";
$('#inputID').keydown(function (e) {
if (e.which !== 8) { // allow backspace
e.preventDefault();
this.value += ' ';
}
}).keyup(function () {
this.value = hw.substring(0, this.value.length);
});
<强> Second demo 强>
答案 3 :(得分:-1)
vanilla Javascript很快就会混淆很多事件。
jQuery在队列中为您调度操作,以便在适当的范围内执行。
$('#inputID').keyup(function(e){
var cv=["h","e","l","l","o"," ","w","o","r","l","d",""];
var i=$('#inputID').val();
for (j=0;j<11;j++){
$(this).val($(this).val().replace(i[j],cv[j]));
}
});