0

私はいくつかの Web インターフェイスを開発しています。いくつかの INPUT 要素を編集不可/変更不可に変換したいのですが、入力された値を表示したままです。これはどのように行われますか?

少なくとも Chrome では、disabled 属性は入力値を非表示にします (チェックボックスのマークを外し、ラジオ ボタンを塗りつぶしません)、readonly ラベルを使用すると、ユーザーは値を変更し続けることができます。なんで?これはChromeのことですか?単に相互作用を許可しないが、これまでに事前に選択された値を維持して表示するための最良の方法は何ですか?

編集:私はjQueryのものを使用しています

$('#deForm :input').attr('readonly',true);

$('#deForm :input').attr('disabled',true);

このテストのために。GUI は入力要素を隠しているため、どちらも問題なく処理されているようです。しかし、どれも私の期待する機能を示していません

EDIT2:「true」の代わりにjQueryの2番目の引数として「readonly」と「disabled」も入れようとしましたが、同じ効果があります

EDIT3:読み取り専用にも追加しようとしました。

 $('#deForm :input').attr('readonly',true);
 $('#deForm :input').keypress(function(event){
      event.preventDefault();
 });

ただし、動作はプレーンな読み取り専用と同じです

4

2 に答える 2

2

これは、readonlyおよびdisabledプロパティのデフォルトの動作です。preventDefaultイベントオブジェクトのメソッドを使用できます。

<input type='text' value='something'/>

$('input[type=text]').keypress(function(event){
    if (something is true) {
       event.preventDefault()
       // or return false
    } else {
       //
    }
}) 

http://jsfiddle.net/2fKjX/

于 2012-08-14T23:43:57.310 に答える
0

読み取り専用が機能しないとおっしゃっていたのは知っていますが、構文を間違えたと思います。あなたが欲しいのはこれです:

<input type="text" readonly="readonly" value = "Hi ima txtbox" id="whatever" class="whatever" />
于 2012-08-14T23:53:49.807 に答える