人々が最初に JavaScript を使い始めたとき、主な目的の 1 つはフォームの検証と、フォームの処理に対するサーバーの責任を共有することでした。一般的な送信方法のほとんどは ajax を使用しますが、フォームを理解することは ajax 方法にも非常に役立ちます。したがって、フォームを過小評価しないでください。
1. フォームの基礎知識
HTMLではフォームは要素で表現されますが、JavaScriptではフォームはHTMLFormElement型に相当します。
表 HTMLFormElement の属性とメソッド
属性またはメソッド | 関数の説明 |
---|---|
acceptCharset | サーバーが処理できる文字セット。HTML の accept-charset 機能に相当します。 |
リクエストされた URL を受け取ります。HTML の action 属性に相当します。 | |
フォーム内のすべてのコントロールのコレクション (HTMLCollection) | |
リクエストのエンコード タイプ。 HTML enctype 属性 | |
フォーム内のコントロールの数 | |
HTML メソッド属性に相当する HTTP リクエストのタイプ | |
の名前フォーム; HTML の name 属性に相当します | |
すべてのフォームフィールドをデフォルト値にリセットします | |
フォームを送信します | |
リクエストの送信とレスポンスの受信 HTML のターゲット機能と同等 |
関数の説明 | |
---|---|
現在のフィールドが無効かどうかを示すブール値 | |
現在のフィールドが保存されているフォームへのポインター所属; 読み取り専用 | |
現在のフィールドの名前 | |
現在のフィールドが読み取り専用かどうかを示すブール値 | |
切り替え(タブ)を示します現在のフィールドのシーケンス番号 | |
現在のフィールドのタイプ | |
サーバーに送信されている現在のフィールドの値。ファイルフィールドの場合、この属性は読み取り専用であり、コンピューター上のファイルのパスが含まれます |
属性和方法 | 作用说明 |
---|---|
add(newOption, relOption) | 向控件中插入新项,其位置在相关项relOption之前 |
multiple | 是否支持多项选择 |
options | 所有项集合 |
remove(index) | 移除给定位置的选项 |
selectIndex | 基于0的选中项的索引,如果没有选中项,则该值为-1;对于支持多选的控件,只保存选中项的第一项索引 |
size | 选择框中可见的行数 |
HTMLOptionElement的属性和方法:
属性和方法 | 作用说明 |
---|---|
index | 当前选项在options集合中的索引 |
label | 当前选项的标签 |
selected | 当前选项是否被选中 |
text | 选项的文本 |
value | 选项的值 |
<form method="post" action="" id="myForm"> <label for="selLocation">Where do you want to live?</label> <select name="location" id="selLocation"> <option value="Sunnyvale, CA">Sunnyvale</option> <option value="Los Angeles, CA">Los Angeles</option> <option value="Mountain View, CA">Mountain View</option> <option value="">China</option> <option>Australia</option> </select> </form>12345678910
// 选择上述每个选项后,value值分别为:["Sunnyvale, CA", "Los Angeles, CA", "Mountain View, CA", "", "Australia"] document.getElementById("selLocation").value; // 获得第一个选项的文本和值 document.forms[0].elements["location"].options[0].text;document.forms[0].elements["location"].options[0].value;12345
(1)展示规则:有value属性且值不为空,则展示value属性的值;否则展示该项的文本值。
(2)value值规则:有value属性(不管是否为空),获得的都是对应value属性的值;否则为该项文本值。
1. 选择选项
function getSelectedOptions(selectbox){ var result = new Array(); var option = null; for (var i=0, len=selectbox.options.length; i < len; i++){ option = selectbox.options[i]; if (option.selected){ result.push(option); } } return result; }12345678910111213
2. 添加选项
(1)DOM方式
var newOption = document.createElement("option");newOption.appendChild(document.createTextNode("Option text"));newOption.setAttribute("value", "Option value");selectbox.appendChild(newOption);1234
(2)Option构造函数
var newOption = new Option("Option text", "Option value"); selectbox.appendChild(newOption);12
(3)选择框的add方法(最佳方案)
var newOption = new Option("Option text", "Option value"); selectbox.add(newOption, undefined); // 插入到最后12
3. 移除选项
(1)DOM方
selectbox.removeChild(selectbox.options[0]);1
(2)选择框的remov
selectbox.remove(0);1
(3)将相应的选项设置为null(遗留机制)
selectbox.options[0] = null;1
4. 移动和重排选项
DOM的appendChild方法(只能添加到最后),如果appendChild传入一个文档中已有的元素,那么就会先从该元素的父节点中移除它,再把它添加到指定的位置。
// 将第一个选择框中的第一个选项移动到第二个选择框中 var selectbox1 = document.getElementById("selLocations1"), selectbox2 = document.getElementById("selLocations2");selectbox2.appendChild(selectbox1.options[0]); 1234
DOM的insertBefore方法
// 将选择框中的选项向后移动一个位置 var optionToMove = selectbox.options[selectbox.options.length - 1]; selectbox.insertBefore(optionToMove, selectbox.options[0]);123
四、表单序列化
对表单字段的名称和值进行URL编码,使用“&”分隔;
不发送禁用的表单字段;
只发送勾选的复选框和单选按钮;
不发送type为“reset”和“button”的按钮;
选择框中每个选中的值单独条目发送;
五、富文本编辑
contenteditable:用户立即可编辑该元素
data:text/html, <html contenteditable>1
以上がJavaScript フォーム スクリプトの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。

Quartzタイマーを使用してタスクをスケジュールする場合、Quartzでタスク通知を事前に送信する方法、タスクの実行時間はCron式によって設定されます。今...

JavaScriptプログラミング、プロトタイプチェーンの関数パラメーターの理解と操作のJavaScriptのプロトタイプチェーンの関数のパラメーターを取得する方法は、一般的で重要なタスクです...

WeChatアプレットWeb-ViewでVue.jsを使用する動的スタイルの変位障害がvue.jsを使用している理由の分析...

複数のリンクの同時ゲットリクエストを作成し、結果を返すために順番に判断する方法は? TamperMonkeyスクリプトでは、複数のチェーンを使用する必要があることがよくあります...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版
中国語版、とても使いやすい

ホットトピック



