CSSまたはJavaScriptまたはJqueryを使用して、「読み取り専用div」にする必要があります。テキストボックスだけでなく、すべて。完全なdiv
。そのdivには何でも含まれます(image、、other div、text-box、...)
それはすべてのブラウザでサポートされるはずです。
何か案が?
_pointer-events: none;
_を使用して、特定の要素でのマウスDOMインタラクション(クリック、ホバーなど)を無効にすることができます。例:
_div {
pointer-events: none;
}
_
_<div>
<input type="text" value="value" />
<br />
<textarea>value</textarea>
</div>
_
ただし、_pointer-events: none;
_が存在していても、カーソルを要素(またはその子)にフォーカスさせることは可能です。つまり、カーソルフォーカスを_<input />
_タグに移動すると、値を編集できるようになります。
例:_<input />
_タグをクリックしてから、キーボードでtabを押すと、カーソルのフォーカスが入力になり、編集可能になります。
_<input />
_タグを作成するには完全に編集不可に、タグにreadonly
属性を設定します。以下は、jQuery .prop()
を使用して実行する簡単な例です。必要に応じて、タグに属性を直接配置することもできます。
$("input, textarea").prop("readonly", true);
_<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input type="text" value="value" />
<br />
<textarea>value</textarea>
</div>
_
残念ながらCSSでこれを行うことはできません。HTML要素のreadonly
属性の後にいることになります。 JavaScriptを使用すると、簡単に目的の処理を実行できます。jQueryの例を次に示します。
[〜#〜] html [〜#〜]
<div class="readonly">
<input type="text" />
<div><input type="checkbox" /> Blah</div>
<textarea>abc</textarea>
</div>
JavaScript
$(document).ready(function() {
$('.readonly').find('input, textarea, select').attr('readonly', 'readonly');
});
恐れていますが、CSSで要素の動作を制御することはできません。
CSSはCascading Style Sheetsの略で、要素のスタイリング専用です。
ただし、JavaScript
を使用できます。
上記のテストされていないjQuery
の例:
$('#myDiv').children().attr('readonly', true);
以下を試してください:
スクリプトパーツ:
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#previewDiv :input").attr("disabled", true);
});
</script>
HTMLパーツ:
<div id="previewDiv">
<select>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
</select>
<input type="text" name="test" value="test">
</div>
これは問題の解決に役立つと思います。
$("div").prop("readonly", true);
<div>
<input type="text" value="value" /> <br />
<textarea>value</textarea>
</div>