使用Javascript使输入框在用户输入后的3秒内可编辑
Using Javascript to make input box editable for exactly 3 seconds after user input
我需要一个函数,当用户在输入框中输入内容时执行。该函数应该使输入框在3秒内不可编辑,然后再使输入框可编辑。我有下面的函数,但它根本不起作用。我想知道我做错了什么,以及如何解决它?
function makeUnedit (id) {
setTimeout(function(){ document.getElementById(id).readOnly = false; }, 3000);
success:function(setTimeout) {
document.getElementById(id).readOnly = true;
}
}
这个是有效的,但是如果你垃圾输入框,比如你每100毫秒左右输入1个输入,它会覆盖它,使readOnly一直为真如果你继续以这个速度垃圾输入。
document.getElementById(id).readOnly = true;
setTimeout(function(){ document.getElementById(id).readOnly = false; }, 1500);
可以:
function makeUnedit (id) {
document.getElementById(id).readOnly = true;
setTimeout(function(){
document.getElementById(id).readOnly = false;
}, 3000);
}
注意,作为参数传递给setTimeout(argument, milliseconds)
的函数将在x毫秒后被调用。
success:
是一个没有意义的参数,应该会抛出语法错误。
window.onload = function() {
function makeUnedit (id) {
document.getElementById(id).readonly = true;
window.setTimeout(function() {
document.getElementById(id).readonly = false;
}, 3000);
}
document.getElementById("id").onfocus = function() { makeUnedit ("id") };
};
<input type="text" id="id"/>
据我估计,你对success关键字的使用似乎是不正确的。因为无论如何都不需要这样的陈述,这里有一个解决方案。
function makeUnedit (id) {
document.getElementById(id).readonly = true;
window.setTimeout(function() {
document.getElementById(id).readonly = false;
}, 3000);
}
为你的处理器添加下面的代码:
document.getElementById(id).onfocus = function() { makeUnedit(id) };
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 名称输入的索引
- 在控制器中将输入类型时间更改为秒
- 从用户输入的时间中减去秒数
- 当我输入秒数时,高线图被打破
- 如果输入错误,将文本输入保持为只读状态4秒
- 为什么javascript在输入时立即发送事件,而不是在5秒延迟后发送
- 限制为每秒两个键盘输入
- 禁用输入键盘3秒后,第一次按下并重新启用输入键盘再次
- 使输入文本不可编辑,然后使用jQuery在3秒内使其再次可编辑
- 使用Javascript使输入框在用户输入后的3秒内可编辑
- 我需要将free_text_55的值附加到具有相同id的输入框中,但在第一秒中的第一个值与输入框的相同id
- 如何防止秒部分显示在HTML5时间输入元素上?
- 每隔x秒清除一次输入框
- 如何强制秒出现在 HTML5“时间”输入控件上
- 更改我的日期时间正则表达式以使输入秒是可选的
- 如果未设置cookie且未选择任何输入,则在10秒后隐藏登录表单
- JavaScript -输入分钟:秒和总和
- 输入Javascript倒计时计时器分钟和秒