防止在文本字段输入中键入,即使字段未禁用/只读
Prevent typing in Text Field Input, Even Though Field is NOT Disabled/Read-Only
即使我的字段未禁用或只读,我是否可以阻止HTML文本字段输入?我有这个要求。
也许我可以通过JS或jQuery阻止所有输入?
看到这个小提琴
你可以为此使用 jQuery。您可以按以下步骤进行操作
$('input').keypress(function(e) {
e.preventDefault();
});
或
您可以只返回 false 而不是使用 preventDefault()
。请参阅下面的脚本
$('input').keypress(function(e) {
return false
});
看小提琴
或
没有Javascript的简化版本如下。只需更改您的 HTML 如下
<input type="text" onkeypress="return false;"/>
看小提琴
如果您正在寻找只读输入,一个简单的方法是将"只读"添加到输入 HTML。例如
<input type="number" readonly>
这样,它就不会干扰表单提交或其他事件侦听器。仍会提交带有"只读"的输入,但不会提交带有"已禁用"的输入。
参考资料: https://www.w3schools.com/TAGS/att_input_readonly.asp
如果你想使这个领域变得棘手。
$('input').focus(function(e) {
$(this).blur();
});
例 : https://jsfiddle.net/DinoMyte/up4j39qr/15/
您可以在
事件上返回 false input
或者在每次用户尝试编写内容时使用.val('')
重置字段:
$('input').input(function(e) {
$(this).val('');
});
希望这有帮助。
$('input').on('input', function(e) {
$(this).val('');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' />
接受的答案对我来说很好用,但我也想包括 Shift、Esc 和删除键。 在这种情况下,请使用keydown
而不是keypress
:
$('input').keydown(function(e) {
e.preventDefault();
});
文档:https://api.jquery.com/keydown/
相关文章:
- 点击提交按钮后,输入字段将变为(只读)
- Onclick无法在IE8和IE7中启用只读字段
- 无法在IE中的输入字段上设置只读
- 为什么 react 将输入[类型=“文本”] 字段设为只读,除非我提供 onChange 回调
- 如何在只读输入字段上设置自定义有效性
- 使只读字段不可单击
- 输入字段对用户只读,但仍可通过 DOM 进行编辑
- 防止在文本字段输入中键入,即使字段未禁用/只读
- 如何从只读字段中删除闪烁的光标
- 如何在chrome浏览器中的输入字段中使用只读属性时启用光标移动
- jQuery使字段不可编辑,没有只读或已分解
- 使Dynamics CRM 2011字段只读而非禁用
- 如何在Android股票浏览器中的只读输入字段上显示省略号
- 动态添加到表中的文本框的行为类似于只读字段
- 使输入字段只读其他输入字段的值
- Sencha默认情况下将只读属性添加到'外部字段编号'类型
- 使用JS或Jquery-是否可以有一个只读字段,该字段显示有掩码,但在复制时不显示掩码值
- 如何使日期输入字段只读在蛋糕PHP
- 在MS CRM 2013中使字段只读
- 决定在运行时使字段只读的编辑组件