フォーム内の無効なフォームフィールドの値を送信する方法 サンプルコード

フォーム内の無効なフォームフィールドの値を送信する方法 サンプルコード
フォーム内のフォーム フィールドが無効に設定されている場合、フォーム フィールドの値は送信されません。ただし、場合によってはこの値を送信する必要があります。
disabled の代わりに readonly を使用するなど、多くの解決策がありますが、どれもあまり良くないと思います (具体的な理由は省略します)。

解決策として、送信するフォームを送信する前にコピーし、コピーしたフォーム内のすべてのフォーム フィールドの disabled 属性を false に設定して、コピーしたフォームを送信するという方法を考えました。以下はデモ コードです (デモ効果を確認するには、コードを submit.html というファイルに保存します)。

コードをコピー
コードは次のとおりです。

<html>
<ヘッド>
<meta http-equiv="コンテンツタイプ" content="text/html; charset=shift-jis">
<タイトル>
フォームを送信
</タイトル>
<スクリプト>
関数doSubmit(フォーム) {
var newForm = form.cloneNode(true);
フィールドを有効にします(newForm.getElementsByTagName("input"));
フィールドを有効にします(newForm.getElementsByTagName("textarea"));
フィールドを有効にします(newForm.getElementsByTagName("select"));
newForm.style.display = "なし";
document.body.appendChild(新しいフォーム)
新しいフォームを送信します。
}
関数enableFields(フィールド) {
for(var i=0;i<fields.length;i++) {
var フィールド = fields[i];
if (フィールドインスタンス(配列)) {
(var j=0;j<field.length;j++) の場合 {
フィールド[j].disabled = false;
}
} それ以外 {
フィールドが無効 = false;
}
}
}
</スクリプト>
</head>
<本文>
<フォームアクション="submit.html">
<input type="text" name="text" value="tt" 無効/>

<input type="radio" name="radio" value="r1" チェック済み 無効>r1
<input type="radio" name="radio" value="r2">r2

<input type="チェックボックス" name="チェックボックス" value="c1">c1
<input type="checkbox" name="checkbox" value="c2" チェック済み無効>c2

<select name="select" 無効>
<オプション値="1">1</オプション>
<オプション値="2">2</オプション>
</選択>

<textarea name="textarea" 無効>123</textarea>

<input type="button" value="送信" onclick="doSubmit(this.form)">
</フォーム>
</本文>

<<:  CSS3はグラフィックの落下アニメーション効果を実現します

>>:  MySQL データ分析ストレージエンジンの例の説明

推薦する

Linux での Nginx アンチホットリンクと最適化の実装コード

バージョン番号を非表示バージョン番号は非表示になっていません。セキュリティを強化するために、バージョ...

MySQL サーバー 5.7.20 のインストールと設定方法のグラフィック チュートリアル

この記事ではMySQL 5.7.20のインストールと設定方法を記録し、皆さんと共有します1. MyS...

CSS floatプロパティの詳細な説明

1. フローティングとは何ですか?フローティングは、その名の通り、浮遊することを意味します。要素がド...

CSS でホバー ドロップダウン メニューを実装する方法

いつものように、今日は非常に実用的な CSS 効果についてお話します。マウスがボタンに移動すると、ド...

MySql のクラッシュとサービスの起動失敗の解決策

私は長い間PHPに触れてきましたが、インストール環境は非常に不慣れです。多くの問題に遭遇しました。B...

Ubuntu 向け VMware Tools のインストールと構成のチュートリアル

以前、ブロガーは VMware 仮想マシンに Ubuntu システムをインストールしました。まだイン...

MySQLアカウントのIP制限条件を変更する方法

序文最近、仕事で、MySQL ユーザーの権限を変更するには、特定の IP アドレスへのアクセスを制限...

ポップアップ効果を実現するにはjsを使用します

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

MySQL 5.7.16 のインストールと設定方法のグラフィック チュートリアル (Ubuntu 16.04)

Ubuntu 16.04 に MySQL 5.7 をインストールするにはどうすればいいですか?メイ...

MySQL カーソルの概念と使用法の詳細な説明

この記事では、例を使用して MySQL カーソルの概念と使用方法を説明します。ご参考までに、詳細は以...

Docker 実行時にユーザーとグループを管理する方法

Docker はプロセスを中核としてシステムリソースを分離する管理ツールです。分離は、オペレーティン...

Node.js http モジュールの使用

目次序文ウェブHTTP サーバーファイルサーバー練習する序文Node.js 開発の目的は、JavaS...

MySQL分離の使用手順を読む

現在のトランザクションはどの履歴バージョンを読み取ることができますか?読み取りビューは、トランザクシ...

Docker での環境変数の使用とよくある問題の解決策

序文Docker はコンテナの環境変数を設定できます。設定方法は 2 つあります。イメージを作成する...

ウェブデザインとは何か

<br />元の記事: http://www.alistapart.com/articl...