2

基本的に、外側の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();
    };
});

これが機能しない例ですhttp://jsfiddle.net/KFWmk/3/

助けていただければ幸いです:)

4

4 に答える 4

9

新しいjQuery(1.6+)の場合:

$('div input').prop("readonly", true);

readonlyこれにより、div内のすべての入力に対してHTMLプロパティがtrueに設定されます。

.attr()プロパティ(ブール値がオンまたはオフの属性)の設定に使用することは、jQueryでは非推奨になっていることに注意してください。

于 2013-03-05T12:54:44.933 に答える
2

まず第一に、jQueryライブラリが含まれていないためです。
2番目の理由はあなたがtype-oを持っているからです。
3つ目は、クリックイベントの前にフォーカスが放出されるためです。(証明

入力フィールドを編集できないようにする場合は、次を使用できます。

$("input").prop("readonly", true);

または単にhtmlで入力フィールドを作成するとき:

<input readonly type="number">

入力フィールドへのフォーカスを防ぎたい場合は、次を使用できます。

$("input").on("focus", function() {
    $(this).blur();
}); 
于 2013-03-05T13:00:59.257 に答える
0
$('div input').attr("readonly", "readonly");

div内のすべての入力フィールドを読み取り専用にすることができます。

于 2013-03-05T12:53:56.697 に答える
0

あなたはこのように試すことができます

$(document).ready(function() {
    $('div input').prop("readonly", true);
});
于 2013-03-05T12:55:05.423 に答える