2012-01-14 24 views
16

フォームactionの属性が「#」(数字/記号/記号/文字)の場合はどういう意味ですか?フォームアクション属性が "#"(数字/ポンド記号/記号/文字)のときはどういう意味ですか?

フォーム入力のformaction属性が「#」に設定されているとどうなりますか?これは、入力がサーバーに送信されないようにしますか?

<form method="GET" action="example.php"> 
    <input type="text" size="20" name="text1" value="text1" formaction="#"/> 
    <input type="text" size="20" name="text2" value="text2"/> 
    <input type="submit" value="Submit"/> 
</form> 

答えて

10

#の意味は、URL参照(actionまたはformactionの属性値などとします)の意味は、現在の基本文書の先頭への参照です。 <base href=...>タグが設定されていない場合、基本文書は現在の文書です。

状況は状況によって異なります。通常、ブラウザはURL内のクエリ部分を持つページを再度要求します(クライアント側のスクリプトが実行されていることを意味する可能性があります)が、以前に同じクエリを使用していた場合は、そのキャッシュ。さらに、ドキュメントの開始点が参照されると、フォーム要素のフォーカスが失われ、ページが後方にスクロールすることがあります。

したがって、一部のコーディングスタイルでは#がかなり一般的ですが、信頼性がありません。その目的は、クライアントサイドのイベントハンドラを使用してより良い達成されます。

formaction属性は、送信ボタンの意味を持ちます。テキスト入力要素は、フォーム提出をトリガーする可能性があるにもかかわらず、送信ボタンを構成しないので、ここでは属性は無視されます。

+0

「あなたは信頼できる」と言ったとき、「信頼できません」という意味ですか? –

+0

@MattGibson、ありがとうございました。 –

2

フォームは、それ自身(現在のURL)に送信されます。私はそれが空の行動と同じだと思う。

また、後でjavascriptでアクションを変更する場合にも便利です。

1

は、W3Schoolsの上の説明:http://www.w3schools.com/html5/html5_form_attributes.asp

フォームの上書きは

フォームオーバーライド属性は、フォーム要素に設定され 属性の一部を上書きすることができます属性。

フォームオーバーライド属性は次のとおりです。

formaction -
formenctypeフォームのaction属性をオーバーライドします -
formmethodフォームのenctype属性をオーバーライドします -
formnovalidateフォームのmethod属性を上書きします - フォームNOVALIDATE属性をオーバーライドします
formtarget - フォームのターゲット属性をオーバーライドします。
注:フォームオーバーライド属性は、次のタイプ:
送信と画像。

<form action="demo_form.asp" method="get" id="user_form"> 
E-mail: <input type="email" name="userid" /><br /> 
<input type="submit" value="Submit" /> 
<br /> 
<input type="submit" formaction="demo_admin.asp" value="Submit as admin" /> 
<br /> 
<input type="submit" formnovalidate="true" 
value="Submit without validation" /> 
<br /> 
</form> 

そうです、あなたはそれがアクションをオーバーライドすることが絶対に正しいですが、それだけで入力タイプ提出し、画像上ではなく、テキストの上に上書きされます。したがって、同じフォームで2つの異なるサブミットボタンを持つことはできますが、異なるタイプのバリデータにつながる可能性があります。それは私がそれを使用するものです。

したがって、は、別のページではなく同じページにアクションを挿入します。

関連する問題