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

フォーム内の無効なフォームフィールドの値を送信する方法 サンプルコード
フォーム内のフォーム フィールドが無効に設定されている場合、フォーム フィールドの値は送信されません。ただし、場合によってはこの値を送信する必要があります。
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 データ分析ストレージエンジンの例の説明

推薦する

Nginx でバージョン番号を隠したり偽造したりする方法

1. デフォルトでアクセスするには、curl コマンドを使用します。 # curl -I http:...

crontab スケジュールされたタスクが実行されない理由の分析と解決

序文Linux のスケジュールされたタスクを実装する方法としては、cron、anacron、at な...

Docker-compose におけるdepends_on 順序問題を解決する方法についての簡単な説明

コンテナをソートするためにdepends_onを使用しても、コンテナ間の依存関係の問題は完全には解決...

JS 実用的なオブジェクト指向スネークゲームの例

目次考える1. 貪欲な蛇の効果画像2. スネークの分析2.1 ゲーム開始機能2.2 運動機能2.2....

Vue+flaskで動画合成機能を実現(ドラッグ&ドロップアップロード)

目次ドラッグアンドドロップアップロードについては以前の記事で書きました。ファイルをアップロードするF...

MySQLで指定した時間前にレコードを自動的に削除する方法

イベントについて: MySQL 5.1 では、イベントの概念が導入され始めました。イベントは「時間ト...

Vue Element Sortablejs を使用してテーブル列をドラッグする詳細な説明

1. css: ドラッグテーブル.css @charset "UTF-8"; ....

ウェブデザインスキル:中国語と英語が混在するウェブページの上位表示の問題

<br />私はこの問題で気が狂いそうです。症状は次のとおりです。 症状の説明: Int...

ZabbixはLinuxシステムサービスのプロセスを監視

Zabbix は Linux システムのサービス ユニットを監視するためのルールを自動的に検出します...

CSS を使用して波状のウォーターボール効果を実装するためのサンプルコード

今日は新しいCSS特殊効果、波型ウォーターボール効果を学びました。これもとても美しいです HTML:...

Vue は動的なプログレスバー効果を実現します

この記事では、動的なプログレスバー効果を実現するためのVueの具体的なコードを例として紹介します。具...

Docker ベースの Jenkins のデプロイに関する詳細なチュートリアル

このドキュメントを作成した当時は2019年12月頃で、er2.200が最新バージョンでした。 1.画...

MySQL のデータの偶発的な削除の解決策と kill ステートメントの原則

mysql が誤ってデータを削除しました削除ステートメントを使用して誤ってデータ行を削除する誤ってデ...

MySQL ロック制御同時実行方法

目次序文1. 楽観的ロックバージョンフィールドを追加する2. 悲観的ロック読み取りロック完全なテーブ...

MySQL に接続する際に Navicat for MySQL が 2005 エラーを報告する問題を解決する

前回の記事では、Navicat for Mysql 接続エラー 1251 (接続失敗) の問題を解決...