我正在开发一个默认情况下阻止输入字段中退格的网站,但对于此特定输入,我想将其返回到其默认行为以接受退格。
最简单的方法是什么?基本上我需要与 preventDefault()
相反的内容。
更新:我在评论中添加了以下消息,但认为这对问题很重要。所以这里是:
不幸的是,我不知道它如何防止退格。我正在创建一个 Chrome 扩展程序,它将输入字段注入(inject)到页面中。除了退格键之外,一切正常。我试图找到阻止它的代码,但这是不可能的。
我创建该字段的代码是这样的:
if(!document.getElementById("input_typing")){
var input = document.createElement('input');
input.id = "input_typing";
input.tabIndex = 1;
input.style.width = "95%";
input.focus();
txts[i].parentNode.appendChild(input);
}
最佳答案
我的想法是:可以在文档中附加一个处理程序,以便*站点可以防止退格*。
我不确定这一点,但我创建了一个片段来阐明我的想法:
如果事件处理程序阻止退格键上的默认操作,您可以为新创建的输入字段添加新的事件处理程序以停止传播。
//
// Let's assume this is the site handler to prevent backspace
//
document.addEventListener('keydown', function(e) {
if (e.which === 8) {
e.preventDefault();
}
});
//
// your new element
//
if(!document.getElementById("input_typing")){
var input = document.createElement('input');
input.id = "input_typing";
input.tabIndex = 1;
input.style.width = "95%";
input.focus();
document.querySelectorAll('input[type="text"]')[0].parentNode.appendChild(input);
//
// Add the keydown event handler to stop propagation
//
input.addEventListener('keydown', function(e) {
e.stopPropagation();
});
}
<form action="action_page.php">
First name:<br>
<input type="text" name="firstname" value="Mickey">
<br>
Last name:<br>
<input type="text" name="lastname" value="Mouse">
<br><br>
<input type="submit" value="Submit">
</form>
关于javascript - 如何将输入字段恢复为其默认行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39551439/