输入集中,但不可键入
Input focused but not typable
我有一个<input readonly="true">
元素。我将其设置为删除只读属性并在双击时聚焦元素。我可以看到只读属性被删除,光标在文本字段中闪烁。但是,当我打字时,没有任何反应。如果我再次双击(单击不执行任何操作),我可以键入。这是为什么呢?
https://jsfiddle.net/kkj1wtef/
我在 Chrome 中遇到了这种情况。奇怪的是,在Firefox中,readonly属性似乎根本不起作用。
无论出于何种原因,这似乎可以解决问题:
input.addEventListener('dblclick', function() {
input.removeAttribute('readonly');
input.blur();
input.focus();
});
https://jsfiddle.net/kkj1wtef/2/
刚刚在您提到的每个浏览器中进行了测试,并且可以与jQuery正常工作
.html
<input type="text" readonly="true">
.JS
var $input = $('input');
$input.dblclick(function() {
$input.removeAttr('readonly');
$input.focus();
});
或添加this
以防另一个不起作用
$input.dblclick(function() {
$(this).removeAttr('readonly');
$(this).focus();
});
您可以简化 javascript 代码片段并重命名 var 以避免歧义:
var txtbox = document.querySelector('input');
txtbox.addEventListener('dblclick', function() {
this.removeAttribute('readonly');
});
无需额外设置焦点,因为双击就足够了。
希望这会有所帮助。
在Chrome 48的小提琴中,它总是忽略我输入的第一个字符,但接下来的所有字符都有效。我能够通过在您聚焦输入后添加一行来修复它。
设置input.value = ''
这为我解决了问题。
相关文章:
- jQuery将输入集中在下一个tr->td时,td包含一个输入字段,但从不关注html选择
- 我如何集中输入'It’s从屏幕上滑进来
- 在输入未填充时将其集中
- 显示给定输入数字的数据集中字母表的所有可能组合
- 如何集中输入,并取消选择其中的文本
- 输入集中,但不可键入
- “map.getBounds()”结果在传单.js集中输入表单后更改
- 将下一个/上一个输入集中在达到最大长度或退格键上
- JQuery 查找集中输入的索引
- 将输入集中在模糊事件不起作用上
- 当输入集中在web应用程序上时显示键盘
- 如何在JavaScript中从字段集中读取输入字段
- AngularJS输入指令在模糊上应用和删除格式&集中
- 只有在没有输入集中的情况下,才将第一个输入集中在负载上
- 如何在不输入关键字的情况下将文本框集中在按键上
- Javascript/jQuery检测输入是否集中
- 防止集中在隐藏溢出区域的集中输入上
- 如何通过javascript或jquery将输入字段集中在Android浏览器上
- 当滚动到输入元素时,我可以集中输入元素吗
- 在jQuery验证中单击提交按钮后没有集中输入