Javascript用字符串替换onKeyUp事件
Javascript Replace onKeyUp event with a string
我不太擅长JavaScript,需要一个我认为简单的脚本。基本上,我有一个输入框,当用户键入一个键时,它将消失,并更改为我拥有的任何字符串。我只能换一封信,这样我就有东西来表达我的意思了。因此,每当用户键入消息时,它都会被替换为"h",但我想要的是让"hello"一个字母接一个字母地键入,而不是一直只键入"h"而不是一次键入"你好"。
这是代码。
<form action=# name=f1 id=f1 onsubmit="return false">
<input type=text name=t1 id=t1 value="" size=25 style="width:300px;"
onkeypress="if(this.value.match(/'D/))"
onkeyup ="this.value=this.value.replace(/'D/g,'h')">
</form>
刚刚编辑,给JS带来错误希望你会介意:你在尝试这样的东西吗:
function replaceString(el){
var sampleText = "hello".split("");
var value = "";
console.log(el)
el.value.split("").forEach(function(str, index){
value += sampleText[index%sampleText.length];
});
el.value = value;
}
<form action=# name=f1 id=f1 onsubmit="return false">
<input type=text name=t1 id=t1 value="" size=25 style="width:300px;"
onkeypress="if(this.value.match(/'D/));"
onkeyup ="replaceString(this);"/>
</form>
如果您想模拟在文本框中键入文本,则需要使用超时。以下功能就足够了:
function simulateTyping(str, el)
{
(function typeWriter(len)
{
var rand = Math.floor(Math.random() * (100)) + 150;
if (str.length <= len++)
{
el.value = str;
return;
}
el.value = str.substring(0,len);
if (el.value[el.value.length-1] != ' ')
el.focus();
setTimeout(
function()
{
typeWriter(len);
},
rand);
})(0);
}
您需要向它传递两个参数:要键入的字符串(例如"hello")和要在其中键入字符串的元素。这里有一个简单的包装器函数:
function typeHello() {
var el = document.getElementById('t1');
var str = 'hello';
simulateTyping(str, el);
}
当您调用typeHello函数时,它会找到id为"t1"的元素,并键入"hello"文本。
相关文章:
- 在onkeyup事件中未检测到文本区域更改
- HTML onkeyup事件属性来运行PHP函数
- onKeyUp 事件计算不适用于 PHP 生成的表单中的以下行,除了第一行
- 防止javascript中的默认onkeyup事件
- JQuery警报不适用于onkeyup事件
- Javascript 文本框 onkeyup 事件
- 如何检测哪个 React 组件触发了 onKeyUp 事件
- 修改 onkeyup 事件以忽略 Tab 键按下
- 来自快速输入的 AJAX OnKeyUp 事件 501
- 在表单元素上创建 onkeyup 事件,而无需实际进行键控
- onKeyUp事件(无效)
- Javascript用字符串替换onKeyUp事件
- 如何在一个html标记上调用多个onkeyup事件
- 通过onkeyup事件Jquery进行文本框验证,而不使用警报
- 文本区域中的onkeyup事件
- 如何禁止输入按钮触发onkeyup事件
- 我的基于web的javascript游戏对onkeyup事件不是很敏感.我如何使程序检测所有的击键,而不仅仅是其中的一些
- 使用onkeyup事件在输入表单的文本两侧添加方括号
- 我想在文本框旁边显示错误信息,而不是在onkeyup事件中发出警报
- onkeydown和onkeyup事件在Internet Explorer 8上不起作用