防止键入文本字段输入,即使字段未禁用/只读

时间:2016-02-26 18:32:59

标签: javascript jquery html disabled-input

即使我的字段未禁用或只读,我是否可以阻止HTML文本字段输入?我有这个要求。

也许我可以通过JS或jQuery阻止所有输入?

5 个答案:

答案 0 :(得分:27)

请参阅此fiddle

你可以使用jQuery ..你可以这样做

$('input').keypress(function(e) {
    e.preventDefault();
});

您可以返回false而不是使用preventDefault()。请参阅下面的脚本

$('input').keypress(function(e) {
    return false
});

请参阅fiddle

没有Javascript的简化版本如下所示。只需更改HTML,如下所示

<input type="text" onkeypress="return false;"/>

请参阅fiddle

答案 1 :(得分:3)

如果您正在寻找只读输入,一个简单的方法是在输入 HTML 中添加“只读”。例如,

<input type="number" readonly>

这样,它就不会干扰表单提交或其他事件侦听器。 'readonly'的输入仍然会被提交,但'disabled'的输入不会被提交。

参考:https://www.w3schools.com/TAGS/att_input_readonly.asp

答案 2 :(得分:1)

您可以在input事件中返回false,或者在每次用户尝试编写内容时使用.val('')重置字段:

$('input').input(function(e) {
    $(this).val('');
});

希望这有帮助。

&#13;
&#13;
$('input').on('input', function(e) {
    $(this).val('');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' />
&#13;
&#13;
&#13;

答案 3 :(得分:1)

如果您希望字段完整无懈可击。

$('input').focus(function(e) {
    $(this).blur();
});

示例:https://jsfiddle.net/DinoMyte/up4j39qr/15/

答案 4 :(得分:0)

可接受的答案对我来说很好,但我还想添加 Shift Esc delete 键。在这种情况下,请使用keydown而不是keypress

$('input').keydown(function(e) {
  e.preventDefault();
});

文档:https://api.jquery.com/keydown/