読み取り専用と無効の微妙な違いの詳細な説明

読み取り専用と無効の微妙な違いの詳細な説明
「読み取り専用」と「無効」はどちらも、ユーザーがフォーム フィールドの内容を変更できないようにします。しかし、それらの間には微妙な違いがあり、次のようにまとめられます。

Readonly は入力 (テキスト / パスワード) とテキストエリアにのみ有効ですが、disabled はすべてのフォーム要素に有効です。ただし、フォーム要素が無効にされた後、POST または GET 経由でフォームを送信すると、この要素の値は渡されませんが、readonly は値を渡します (readonly は値の変更を受け入れ、送り返すことができますが、disable は変更を受け入れますが、データを送り返しません)。

より一般的な状況は次のとおりです。

フォームでは、ユーザー固有の識別コードが事前に入力されており、ユーザーはそれを変更できません。ただし、送信時に値を渡す必要があります。この場合、その属性を readonly に設定する必要があります。

ユーザーが正式にフォームを送信した後、管理者が情報を確認するまで待つ必要があることがよくあります。これにより、ユーザーはフォーム内のデータを変更できず、表示のみが可能になります。disabled にはさまざまな要素があるため、このときに使用する必要があります。ただし、送信ボタンも無効にする必要があることに注意してください。そうしないと、ユーザーがこのボタンを押した限り、データベース操作ページで整合性チェックが実行されないと、データベース内の値がクリアされます。この場合、無効ではなく読み取り専用を使用すると、フォームに入力 (テキスト/パスワード) とテキストエリア要素のみがある場合は問題ありません。選択などの他の要素がある場合は、ユーザーは値を書き換えて Enter キーを押して送信できます (Enter はデフォルトの送信トリガー キーです)。

多くの場合、JavaScript を使用して、ユーザーが送信ボタンを押した後にそのボタンを無効にすることがあります。これにより、ネットワーク状態が悪い環境でユーザーが送信ボタンを繰り返しクリックして、データベースにデータが重複して保存されることを防ぐことができます。

disabled 属性と readonly 属性にはいくつかの類似点があります。たとえば、両方を true に設定すると、フォーム属性は編集できなくなります。js コードを書くときに、これら 2 つの属性を混在させるのはよくあることです。実際、これら 2 つの属性にはいくつかの違いがあります。

入力項目の disabled が true に設定されている場合、フォーム入力項目はフォーカスを取得できず、入力項目に対するすべてのユーザー操作 (マウスクリックやキーボード入力など) が無効になります。最も重要な点は、フォームが送信されたときに、フォーム入力項目が送信されないことです。
Readonly は、テキストを入力できるテキスト入力ボックスなどの入力項目にのみ適用されます。true に設定すると、ユーザーは対応するテキストを編集できなくなりますが、そのテキストにフォーカスすることはできます。また、フォームを送信すると、入力項目がフォームの項目として送信されます。

<<:  jQueryはすべてのショッピングカート機能を実装します

>>:  MySQL の null 制約のケースの説明

推薦する

Tomcat が https アクセスをサポートするための手順の説明

tomcat を https アクセスに対応させる方法ステップ: (1)キーストアファイルを生成する...

MySQL マスタースレーブレプリケーションスレッドの状態遷移に関する詳細な理解

序文MySQL マスター スレーブ レプリケーションの基本原理は、スレーブ データベースがマスター ...

Node.js とブラウザのグローバル オブジェクトの違いの概要

Node.js では、.js ファイルは完全なスコープ (モジュール) です。したがって、var に...

tomcat8の最新のLinuxインストールプロセス

ダウンロード参考:ダウンロードするコアパッケージを選択してくださいダウンロード後、ファイルをサーバー...

MySQL でレプリケーション フィルターを動的に変更する方法

MySQLはレプリケーションフィルターを動的に変更します今日遭遇した問題についてお話しします。今日は...

Dockerはrabbitmqのサンプルコードをインストールして実行します

イメージをプルします: [mall@VM_0_7_centos ~]$ sudo docker pu...

CSS3 で六角形の境界線を実装するサンプルコード

一番外側の boxF は 120 度回転し、2 番目の boxS は -60 度回転し、3 番目の ...

Nginxホットデプロイメントの実装

目次セマフォNginx ホットデプロイメント上記のブログ投稿に従ってください。ファイアウォールをオフ...

jsはショッピングウェブサイトの商品の拡大鏡効果を実現します

この記事では、ショッピングサイトの商品の拡大鏡効果を実現するためのjsの具体的なコードを紹介します。...

VueでTypeScriptを使用する方法

導入近年、TypeScript を求める声がますます高まり、TypeScript はフロントエンドに...

InnoDB テーブルの BLOB 列と TEXT 列のストレージ効率を最適化します。

まず、MySQL InnoDB エンジンのストレージ形式に関する重要なポイントをいくつか紹介します。...

タブ効果を実現する js 開発プラグイン

この記事の例では、タブ効果を実現するためのjsプラグインの具体的なコードを参考までに共有しています。...

Mysql5.7 で JSON 操作関数を使用する手順

序文JSON は、言語に依存しないテキスト形式を使用する軽量のデータ交換形式で、XML に似ています...

Div CSS 命名標準 CSS クラスの命名規則 (SEO 標準に準拠)

検索エンジン最適化 (SEO) では実行すべきタスクが多数ありますが、その中でもコードの最適化は重要...