画像をSubmitボタンとして使うパターンです。
ほぼ、jQueryではあるのですが。
なお、STS3(3.9.6)+SpringBoot2.0+tymeleaf3.0迄動作確認しています。
Submitボタン以外で「Submit」
WEBアプリケーションは、原則、「フォームに何かを入力したり、選択して実行(SUBMIT)ボタンを押す」の繰り返しです。
<input type="submit"・・でだけで書けるので、SUBMITボタンはとても手軽です。
でも、たまには別のものでSUBMITしたいことがあります。
例えば、リンクとか画像とか。
幸い、今はjQueryを使うとかんたんにできます。
今回は画像をつかってSUBMITをやってみます。
画像のHTML
SUBMITする画像のHTMLです。
class名に「pic」名前をつけました。
<img th:src="@{/images/boku.jpg}" src="../static/images/boku.jpg" class="pic" alt=""></img>
FormファイルのHTML
Submitの対象となるFormファイルのHTMLです。
jQueryのセレクタとしてidを使うので、「hello3Form」という名前をつけてます。
SUBMITボタンも残してますが、今回は使いません。
<form role="form" id="hello3Form" action="/outpg01" th:action="@{/outpg01}" th:object="${hello3Form}" method="post">
<p class="msg" th:text="#{please.chktest}">Please input PID</p>
<input type="text" id="chktest" name="chktest" th:field="*{chktest}" />
<span class="error_msg" th:if="${#fields.hasErrors('chktest')}" th:errors="*{chktest}">error!</span><br /><button type="submit">実行</button>
</form>
JavaScript
画像をSUBMITボタンとして扱うための、スクリプトです。
これもHTMLファイルの<head>から</head>の間に書きます。
<script> <!-- $(function(){ $(".pic").click(function () { $('#hello3Form').submit(); }); }); //--> </script>
こうしておくと、クラスセレクタで、class="pic"をつけると、どのタグからでもSUBMITすることができます。
やってることはシンプルで、クリックされたらFormを選択して(id名のセレクタで選択してます)Submit()をよんでいるだけです。
これで、下の人物イラスト画像が、SUBMITボタンになりました。
Formの外に配置した画像からでもSUBMITできます
もうひとついいことがあります。
SUBMITボタンは必ずFormタグで囲まれた中に配置しないといけません。
ですが、このやり方だと、Formの外に配置した画像からでもSUBMITできます。
レイアウトの自由度があがるので、結構使い勝手がいいです。
ではでは。
STS +Spring Boot+thymeleaf 関連記事
入力画面に関連する記事
参照画面・画面遷移に関連する記事
参照画面:テーブルを使い、行毎に色分けした一覧表を表示する。
入力チェックに関連する記事
入力チェック:@Patternと正規表現で独自チェックする。
入力チェック用アノテーション定義を自分で作る。(独自実装版)
データアクセス・その他に関連する記事