使用 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) };
我需要一个当用户在输入框中输入内容时执行的函数。该函数应使输入框在 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) };