Javascript 为什么此输入始终保持可单击状态?

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接收所有事件,因此div中的输入和任何其他内容都不可单击:

<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中所有输入的HTML
readonly
属性设置为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();
});