formのinputはreadonlyとdisableに設定できますが、両者の違いは何ですか?

8694 ワード

Jqueryのapiでは、要素にdisabledとreadonly属性を適用する方法が提供されています.ここで記録します.次のようになります.
  • readonly
  • $('input').attr("readonly","readonly")// input     readonly  
    $('input').removeAttr("readonly");//  input   readonly    
    
    if($('input').attr("readonly")==true)//  input         readonly    
    
    //       readonly     readonly           :  
    $('input').attr("readonly",true)// input     readonly  
    $('input').attr("readonly",false)//  input   readonly    
    
    $('input').attr("readonly","readonly")// input     readonly
    $('input').attr("readonly","")//  input   readonly    
    
  • disabled
  • $('input').attr("disabled","disabled")// input     disabled  
    $('input').removeAttr("disabled");//  input   disabled    
      
    if($('input').attr("disabled")==true)//  input         disabled    
      
    //     disabled     disabled           :  
    $('input').attr("disabled",true)// input     disabled  
    $('input').attr("disabled",false)//  input   disabled    
      
    $('input').attr("disabled","disabled")// input     disabled  
    $('input').attr("disabled","")//  input   disabled    
    

    同じ点
  • readonlyとdisabledは、ユーザーがフォームの内容を変更することを禁止することができます.たとえばtrueに設定すると、formプロパティは
  • に編集できません.
    異なる点
  • readonlyはinput(text/password)およびtextareaのみに対して有効であり、disabledはselect、radio、checkboxなどを含むすべてのフォーム要素に対して有効である.
  • フォームGETまたはPOST方式でコミットする場合、フォーム要素はreadonlyを使用した後、値をバックグラウンドに渡すことができる.フォーム要素はdisabledを使用した後、バックグラウンドに値を渡すことはできません.
  • すべてのコントロールにはdisabledプロパティがありますが、readonlyプロパティがあるとは限りません.readonlyで削除されたボタンをクリックするとイベントがトリガーされますが、disabledで削除されたボタンは使用できません.上にイベントがあるかどうかにかかわらず.

  • テクニック:readonlyにcssスタイルを設定できます:style="background-color:#cccc;"これでreadonlyの表示効果はdisableと同じになります
    入力項目のdisabledがtrueに設定されている場合、フォーム入力項目はフォーカスを取得できず、ユーザーのすべての操作(マウスクリックやキーボード入力など)が入力項目に無効になります.最も重要なのは、フォームをコミットすると、このフォーム入力項目はコミットされません.
    一方、readonlyは、テキスト入力ボックスのようなテキストを入力できる入力項目にすぎず、trueに設定すると、ユーザーは対応するテキストを編集できないだけですが、フォーカスを合わせることができ、フォームをコミットするときにformの1つとして送信されます.