Readonly と Disabled はどちらもユーザーがフォーム フィールドのコンテンツを変更できないようにしますが、これらの間には依然としていくつかの違いがあります。以下で詳しく説明します。
Readonly と Disabled のどちらも、ユーザーがフォーム フィールドの内容を変更できないようにすることができます。ただし、それらの間にはわずかな違いがあり、それらを要約すると次のようになります:
Readonly は入力 (テキスト/パスワード) とテキストエリアに対してのみ有効ですが、disabled はすべてのフォーム要素に対して有効ですが、フォーム要素が無効になった後、変更するとフォーム POST または GET で送信された場合、この要素の値は渡されませんが、readonly は値を渡します (readonly は値の変更を受け入れてそれを返すことができ、disable は変更を受け入れますがデータを返しません)。
一般的によくある状況は次のとおりです:
一意の識別コードがユーザーのフォームに事前に入力されており、ユーザーはそれを変更することはできませんが、この時点で、その属性を送信するときに渡す必要があります。読み取り専用に設定する必要があります。
ユーザーがフォームを正式に送信し、管理者による情報の検証を待つ必要がある場合、ユーザーはフォーム内のデータを変更することはできず、無効化された範囲が広いため、表示のみが可能になることがよくあります。要素の使用を無効にする必要がありますが、送信ボタンを無効にすることにも注意する必要があります。それ以外の場合、ユーザーがこのボタンを押している限り、データベース操作ページで整合性チェックが行われない場合、その値は無効になります。データベースがクリアされます。この場合、無効ではなく readonly を使用しても、フォーム内に input (text/password) 要素と textarea 要素しかない場合は、select などの他の要素がある場合でも、ユーザーは値を書き換えて押すことができます。 Enter キーを押して送信します (Enter はデフォルトの送信トリガー キーです)
ユーザーが送信ボタンを押した後、JavaScript を使用して送信ボタンを無効にすることがよくあります。これにより、ユーザーがネットワーク状態が悪いときに送信ボタンを繰り返しクリックすることを防ぐことができます。データベースに冗長的に保存されます。
disabled と readonly にはいくつかの共通点があります。たとえば、両方が true に設定されている場合、js コードを記述するときにこれら 2 つの属性を混合するのは簡単です。いくつかの違いがあります:
入力項目の無効が true に設定されている場合、フォーム入力項目はフォーカスを取得できず、入力項目に対するすべてのユーザー操作 (マウス クリックやキーボード入力など) が無効になります。最も重要な点は、フォームが送信されたときにこのフォームの入力が送信されないことです。
Readonly は、テキストを入力できるテキスト入力ボックスなどの入力項目のみに使用されます。 true に設定すると、ユーザーは対応するテキストを編集できなくなりますが、フォーカスすることはでき、フォームを送信するときに入力項目が使用されます。フォームAの提出。
Readonly と Disabled の微妙な違いの詳細な説明については、PHP 中国語 Web サイトに注目してください。