2016-09-17 102 views
0

我正在使用默认情况下防止输入字段中出现退格的网站,但对于此特定输入,我想将其返回到默认行为以接受退格键。如何将输入字段返回到其默认行为?

要做到这一点,最简单的方法是什么?基本上我需要与preventDefault()相反。

更新:我在评论中添加了以下消息,但认为这对问题很重要。所以这里是:

不幸的是,我不知道它是如何防止退格。我正在创建一个将输入字段注入页面的扩展。除了退格之外,一切都有效。我试图找到防止它的代码,但这是不可能的。

我的代码来创建领域是这样的:

  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); 
} 
+0

关闭JavaScript) –

+1

要严重 - 在第一次透露更多的细节(它是如何至少避免退格键) –

+0

类似$(本).unbind( '提交')提交。 (); – Chris

回答

1

我的想法是:可能有一个处理程序附加到文档,以便*站点可防止退格*

我不知道这一点,但我创建了一个片段,以澄清我的想法:

如果事件处理程序防止退格键的默认操作,您可以在添加一个新的事件处理程序,新创建的输入字段为了阻止传播。

// 
 
// 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>

+0

我不认为有解决方案,但你做到了。非常感谢。我需要记住e.stopPropagation(); – Johnny

+0

@Johnny我为你感到高兴 – gaetanoM

0

在情况下,如果是的JavaScript文件,防止退格:

您可以在JS后做内嵌脚本在页面中直接文件(其中包含防止输入字段中的退格的代码)被添加。

因此,将包含JS - 它将禁用退格。 帖子这个时候你做你的内嵌脚本,使以前的功能 - 你的脚本代码将覆盖包括JS

在情况下,如果是CSS文件,防止退格:

您可以使用内联CSS在每行的末尾使用!important重要的脚本,以便这将覆盖现有的CSS。

注意:最好在页面末尾添加css/js内联脚本代码以提供确定性并避免混淆。

+0

你可以防止退格与CSS?我不知道。 内联脚本如何启用以前的功能? – Johnny

+0

你只需要在上一页中添加代码并再次映射到输入字段。 – Pat

+0

假设你的输入(class =“inputField1”)先前有25个字符,现在,由于某些包含js只允许5个字符,你可以这样做。 这样的代码添加到您的网页 '<脚本类型= “文/ JavaScript的”> $(文件)。就绪(函数(){ $(”。inputField1' )。ATTR(“最大长度结束“,25); }); ' – Pat

相关问题