9

readOnly="true"HTML入力と同等のHTML選択フィールドの属性または手法はあります か?

無効にしたいフォーム選択フィールドがありますが、フォームが投稿されたときに渡されます。これがHTML入力の場合、私は次のようなことをします

$('select_id').setAttribute('readOnly', 'true');

ブラウザはフィールドを編集不可としてレンダリングしますが、その値はバックエンドに渡されます。HTML選択に似たものが欲しいのですが、次のようにします

$('#select_id').setAttribute('readOnly', 'true');

動作しません。属性は正常にDOMに追加されますが、ブラウザーはそれを選択可能としてレンダリングします。

私は次のことができることに気づきました

$('#input_id').disabled();

ただし、フィールドが無効になっている場合、その値はバックエンドに渡されません。

この選択フィールドを無効にする方法が欲しいのですが、それでもバックエンドに渡します。

(例ではPrototype JSを使用していますが、一般的なソリューションに興味があります)

4

2 に答える 2

22

選択したオプション以外をすべて無効にします。

</p>

<select>
<option disabled="disabled">1</option>
<option selected="selected">2</option>
<option disabled="disabled">3</option>
</select>

このように、ドロップダウンは引き続き機能します (そしてその値を送信します) が、ユーザーは別の値を選択できません。

于 2012-08-15T20:04:05.903 に答える
3

無効なクラスを追加:

.disabled{
   color: grey;
}

クラスが存在する場合、フォーカス時とクリック時のデフォルトの使用を防止し、dbl クリック:

$('#el').bind('click dblclick focus').function(event){
   if ($(this).hasClass('disabled')) event.preventDefault();
});
于 2012-08-15T20:10:07.860 に答える