0

モバイルサイトの作業フォームがあります。キャンセルボタンを画像スタイルのボタンに変更しました。モバイルブラウザでクリックすると、フォームの検証がポップアップ表示されます。検証メッセージを閉じた後、サイトは前のページに戻ります。ユーザーがキャンセルボタンをクリックしたときにフォームが検証されていませんでしたが、タイプを「ボタン」から「画像」に切り替えると、フォームが検証され、理由がわかりません。

前:

<pre>
    input type="button" onclick="history.back();" value="Cancel"
</pre>

後:

<pre>
    input type="image" onclick="history.back();"
    src="images/Mobile_Form_Button_01_Cancel.png"

</pre>
4

2 に答える 2

0
<input type="image" />

実際には、画像としての「送信」ボタンです。詳細はこちら(W3Cスクール)

動作させるには、CSSに戻し、<input type="button" />CSSを使用してスタイルを設定します。

于 2012-11-22T16:27:57.310 に答える
0

これが発生する理由は、form要素内input type=imageで、特別な種類の送信ボタンとして機能するためです。これは、スクリプトまたはHTML定義の検証がデフォルトで行われることを意味します。コントラクトでは、input type=button要素はデフォルトのアクションを持たないボタンを作成します。アクションはすべてスクリプト化する必要があります。(これにより、静的HTMLでは不適切な選択になることがよくあります。ブラウザーでスクリプトが無効になっている場合、ボタンはそこにとどまり、クリックしても何もしません。)

これを回避するにはさまざまな方法があります。return false1つの方法は、コードの最後に追加してonclick、デフォルトのアクションを防ぐことです。もう1つは、好みに応じて、input type=buttonまたはスタイルを設定することです。buttonさらにもう1つは、属性を持つimg要素だけを持つonclickことです(ただし、JavaScriptによって生成されることが望ましい)。

最良のオプションは、要素を削除することです。使いやすさの観点から、WebページではなくHTML5アプリケーションを作成している場合を除いて、ブラウザの機能を複製しないでください。

于 2012-11-22T16:51:12.167 に答える