ホームページ > ウェブフロントエンド > htmlチュートリアル > HTML でのフォームとフォーム送信操作のメソッドの概要

HTML でのフォームとフォーム送信操作のメソッドの概要

小云云
リリース: 2017-12-11 10:10:58
オリジナル
3175 人が閲覧しました

この記事では主にHTMLのフォーム要素とフォーム送信に関する知識を紹介しますので、必要な方は参考にしていただければ幸いです。

form 要素

form 要素の DOM インターフェイスは HTMLFormElement,继承自HTMLElement であるため、他の HTML 要素と同じデフォルト属性を持ちますが、いくつかの固有の属性とメソッドもあります:


をオーバーライドします。 をオーバーライドします。
属性値 説明
accept-charset サーバーが処理できる文字セット、複数の文字セットはスペースで区切られます
action リクエストを受け入れるためのURL、この値はform 要素 input 要素または button 要素の formaction 属性は、form 要素内の input 要素または button 要素によって要求されたエンコーディング タイプをオーバーライドします。プロパティは、フォーム内のコントロールの数
メソッド送信する HTTP リクエストのタイプ。通常は「get」または「post」。この値は、form 要素の input 要素または button 要素に渡すことができます。formmethod 属性は、
name フォームの名前
reset() すべてのフォームフィールドをデフォルト値にリセットします
submit() フォームを送信します
target リクエストの送信とレスポンスの受信に使用されるウィンドウの名前。この値は、form 要素の input 要素または button 要素の formtarget 属性によってオーバーライドできます
autocomplete form 要素を自動的に補完するかどうか

input 要素

input 要素は、type 属性の値に応じて、非常に広く使用されているフォーム要素です。

Text input 入力を送信
ラジオボタン入力
チェックボックス入力< ;input type="checkbox" name="同じ名前" value="対応する値が異なる">
数値入力 入力ボックスのみ数値を入力可能最大値と最小値を設定できます。
範囲入力 は数値と似ていますが、入力ボックスの代わりにスライダーが表示されます。
カラー入力 カラーピッカーが表示されます。
日付を入力 すると日付ピッカーが表示されます。
メール入力 がテキスト入力ボックスとして表示され、カスタマイズされたキーボードがポップアップします。
tel 入力 はメール入力と同様です。
url 入力 はメール入力と同様で、カスタマイズされたキーボードがポップアップします。
textarea 要素は複数行のテキストエリアを作成できます。

colsとrowの属性値は文字の幅と高さを表しますそれぞれテキスト領域。
select 要素と option 要素は、ドロップダウン メニューを作成するために一緒に使用されます。

ラジオ

異なる名前属性を設定するだけです

例:

ゲームをプレイ
コードを書き込む

男性
女性、
これらは 2 セットのラジオです

プレースホルダー

の期待値を説明するプロンプト情報を提供します入力フィールド(ヒント)。
入力フィールドが空の場合はプロンプトが表示され、フィールドにフォーカスが移るとプロンプトが表示されなくなります。

type=hidden

は、非表示の入力を定義します。非表示フィールドはユーザーには表示されません。通常、非表示フィールドにはデフォルト値が保存され、その値は JavaScript によって変更することもできます。
たとえば、セキュリティ目的で使用され、ユーザーには見えない名前と値の値をバックグラウンドに送信し、バックグラウンドでページの偽造を防ぐための検証を実行できるようにします。

送信ボタン

フォームに送信ボタンを追加すると、ユーザーはフォームを送信できるようになります。

次の 3 つのボタンは、クリックされたときにフォームの submit イベントをトリガーできます:

<input type="submit" />
<button type="submit"></button>
<input type="image" />
ログイン後にコピー

仕様ではボタン要素の type のデフォルト値は submit ですが、IE678 ではデフォルト値は button なので、互換性から考慮事項 type="submit" 属性を button 要素に手動で追加する必要があります。

submitイベント

初心者は、フォームの送信が送信ボタンのクリックイベントによってトリガーされると考えるかもしれませんが、実際にはそうではなく、ボタン要素のクリックイベントとフォームの送信イベントが実行されます。異なるブラウザでは異なる順序で表示されるため、正確にするために、フォーム送信イベントを制御するために、フォームの送信イベントで検証やその他の操作を実行することを選択します。

form.addEventListener(&#39;submit&#39;, function (e) {
  if (valid()) {
    ...
  } 
  e.preventDefault()
})
ログイン後にコピー

上記3つのボタンがフォーム要素に無い場合、ユーザーはフォームを送信することができません(この時、Enterキーも無効になります)。 form要素を使用することができます。 submit()方法执行提交表单,需要注意的是调用submit()方法并不会触发form元素的submit事件,表单的验证等操作应该在调用submit()

if (valid()) {
  form.submit()
}
ログイン後にコピー

フォーム送信とユーザーエクスペリエンス

人気の ajax + クロスドメイン POST (CORS) テクノロジーに基づいて、フォーム要素を使用せずにデータをサーバーに直接送信する可能性があります。これは機能しますが、ほとんどの場合、エクスペリエンスが低下します。

JavaScript フォームの検証

JavaScript を使用すると、データがサーバーに送信される前に、HTML フォーム内のこれらの入力データを検証できます。

JavaScript によって検証される一般的なフォーム データは次のとおりです:

用户是否已填写表单中的必填项目?
用户输入的邮件地址是否合法?
用户是否已输入合法的日期?
用户是否在数据域 (numeric field) 中输入了文本?
必填(或必选)项目

下面的函数用来检查用户是否已填写表单中的必填(或必选)项目。假如必填或必选项为空,那么警告框会弹出,并且函数的返回值为 false,否则函数的返回值则为 true(意味着数据没有问题):

function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
  {alert(alerttxt);return false}
else {return true}
}
}
ログイン後にコピー

下面是连同 HTML 表单的代码:

<html>
<head>
<script type="text/javascript">

function validate_required(field,alerttxt)
{
with (field)
  {
  if (value==null||value=="")
    {alert(alerttxt);return false}
  else {return true}
  }
}

function validate_form(thisform)
{
with (thisform)
  {
  if (validate_required(email,"Email must be filled out!")==false)
    {email.focus();return false}
  }
}
</script>
</head>

<body>
<form action="submitpage.htm" onsubmit="return validate_form(this)" method="post">
Email: <input type="text" name="email" size="30">
<input type="submit" value="Submit"> 
</form>
</body>

</html>
ログイン後にコピー

E-mail 验证

下面的函数检查输入的数据是否符合电子邮件地址的基本语法。

意思就是说,输入的数据必须包含 @ 符号和点号(.)。同时,@ 不可以是邮件地址的首字符,并且 @ 之后需有至少一个点号:

function validate_email(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@")
dotpos=value.lastIndexOf(".")
if (apos<1||dotpos-apos<2) 
  {alert(alerttxt);return false}
else {return true}
}
}
ログイン後にコピー

下面是连同 HTML 表单的完整代码:







Email:
ログイン後にコピー

快捷键提交

在没有form元素包裹的情况下,即使当前页面的焦点在表单元素上,按回车键也不会触发表单提交,对于用户而言,需要从键盘控制切换到鼠标/手势控制,破坏了原有的流畅度。解决方法最简单的就是在外层用一个form元素包裹,并且确定form元素中起码有一个提交按钮。此时当表单中的输入域得到焦点时,用户按回车键便会触发提交。

浏览器记住账号密码

在提交表单时,高级浏览器包括移动端浏览器,会询问用户是否需要记住用户账号密码,对于一般用户而言,这是一个十分有用的特性,特别是在移动端,可以为用户节省很多时间。在没有form元素的情况下,浏览器不会弹出该询问窗口。

我们在开发一个表单应用的时候,不应该尝试去除form元素直接进行提交,在form元素中应该包含一个提交按钮,如果是button元素,应该手动加上type="submit"属性。提交事件的处理在form元素的submit事件中,而非提交按钮的click事件。

相关推荐:

html中Form表单提交时页面不跳转的方法详解

序列化form表单教程详解

有关jquery中form表单序列化的一些问题指导

以上がHTML でのフォームとフォーム送信操作のメソッドの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート