Javascript 为什么此输入始终保持可单击状态?
基本上,我希望外部div接收所有事件,因此div中的输入和任何其他内容都不可单击:Javascript 为什么此输入始终保持可单击状态?,javascript,jquery,html,propagation,Javascript,Jquery,Html,Propagation,基本上,我希望外部div接收所有事件,因此div中的输入和任何其他内容都不可单击: <div id="div1"> <div id="div2"> <label>Input 1</label> <input type="text" id="input1" /> </div> </div> $(document).ready(function() { $(d
<div id="div1">
<div id="div2">
<label>Input 1</label>
<input type="text" id="input1" />
</div>
</div>
$(document).ready(function() {
$(document).on('click', '#input1', function(e){
e.preventDefault();
};
});
输入1
$(文档).ready(函数(){
$(文档).on('单击','输入1',函数(e){
e、 预防默认值();
};
});
这是一个不起作用的例子
感谢您的帮助:)
您可以将div中的所有输入字段设置为只读。在较新的jQuery(1.6+)中:
这会将div中所有输入的HTMLreadonly
属性设置为true
请注意,使用.attr()
设置属性(布尔值为on或off的属性)在jQuery中已被弃用。您可以这样尝试
$(document).ready(function() {
$('div input').prop("readonly", true);
});
首先,因为您没有包括jQuery库。
第二个原因是你有一个o型。
第三,因为焦点是在单击事件之前发出的。() 如果要使输入字段不可编辑,可以使用:
$("input").prop("readonly", true);
$("input").on("focus", function() {
$(this).blur();
});
或者在html中创建输入字段时:
<input readonly type="number">
使用
.attr()
设置属性在jQuery中已被弃用,请查看使用.prop()
使用.attr()
设置属性在jQuery中已被弃用,请查看使用.prop()
是我编辑的bec使用.attr我们继续设置属性…谢谢,事实上看起来更好,但不确定该来源的可靠性:@qwerty这是正确的,只是在IE6中尝试过,它没有问题。感谢它似乎对输入元素有效,我认为禁用是选择元素的最佳替代方法“如果你想阻止焦点”-使用readonly
不会阻止焦点,它只是使字段…嗯…只读。也就是说,您仍然可以用tab键指向字段或用鼠标选择文本,并且您仍然可以将文本复制到剪贴板-您只是无法更改它。
<input readonly type="number">
$("input").on("focus", function() {
$(this).blur();
});