16

読み取り専用のチェックボックスを作りたい。このような:

<input type="checkbox" onclick="return false;">

チェックボックスが無効またはグレー表示されているように見せたい。

これどうやってするの?

4

4 に答える 4

24

チェックボックスも無効にする必要があります。

<input type="checkbox" onclick="return false;" disabled="disabled">

値を投稿するには、代わりに読み取り専用にします。

<input type="checkbox" onclick="return false;" readonly="readonly">

CSS を使用して、チェックボックスのラベルと読み取り専用の入力のスタイルを設定できます。たとえば、input [readonly="readonly"] {} ですが、読み取り専用に設定すると、ブラウザはチェックボックスをグレー表示にする必要があります。

更新しました:

チェックボックスをスタイリングするときはブラウザーに翻弄され、すべてのブラウザーで一貫してスタイルを設定するには、画像に頼る必要があります。例: https://archive.is/TNUH1

これを行いたくない場合 (そして、時間のかかる解決策のように思われる場合)、最も簡単な解決策は、チェックボックスを無効にして正しく表示し、値を非表示の入力として投稿することです。

<input type="checkbox" onclick="return false;" disabled="disabled">
<input type="hidden" name="checkboxval" value="111" />
于 2012-05-21T12:14:55.603 に答える
6

このようにチェックボックスに「無効」属性を追加するだけです

<input type="checkbox" disabled="disabled" />
于 2012-05-21T12:14:58.380 に答える
6

無効なチェックボックスをグレーアウトするシンプルな css のみの方法。

input[type=checkbox][disabled] {
    filter: invert(25%);
}
于 2017-03-30T18:52:43.243 に答える
4

$('input.readonly').on('click', function(evt) {
   evt.preventDefault();
});
input.readonly {
   opacity: .5;
   filter: alpha(opacity=50); /* IE<9 */
   cursor: default;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" class="readonly">

グレーアウトする要素にクラスを追加しreadonlyます。css を使用して を設定しopacity、 のスタイルを変更しcursorます。input.readonly次に、インライン JavaScript を削除し、クリック イベントでの要素のデフォルト アクションを防止します。

于 2012-05-21T12:15:43.473 に答える