質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Q&A

解決済

2回答

2459閲覧

ラジオボタンの入力値を変更不可にする方法

退会済みユーザー

退会済みユーザー

総合スコア0

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

0グッド

0クリップ

投稿2020/07/27 06:24

権限が1すなわち「一般」の場合のみ、権限情報を変更不可(ラジオボタンを固定)にしたいのですが、Thymeleafでの記述方法が分かりません。
現在のhtmlは以下のようになっております。

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8" /> <link rel="stylesheet" type="text/css" th:href="@{/css/layout.css}" /> <link rel="stylesheet" type="text/css" th:href="@{/css/style.css}" /> </head> <body> <div class="content"> <article> <h3>社員変更入力画面</h3> <div class="update"> <form method="post" th:action="@{/update/check}" th:object="${employeeForm}"> <p> <span th:each="error:${#fields.detailedErrors()}"> <span th:text="${error.message}"></span><br/> </span> </p> <div class="form"> <div class="label">パスワード:</div> <div class="input"> <input type="password" th:field="*{empPass}" /> </div> </div> <div class="form"> <div class="label">社員名:</div> <div class="input"> <input type="text" th:field="*{empName}" /> </div> </div> <div class="form"> <div class="label">性別:</div> <div class="input"> <input type="radio" th:field="*{gender}" value="1" th:checked="${gender == 1}" />男性&nbsp; <input type="radio" th:field="*{gender}" value="2" th:checked="${gender == 2}" />女性 </div> </div> <div class="form"> <div class="label">住所:</div> <div class="input"> <input type="text" th:field="*{address}" /> </div> </div> <div class="form"> <div class="label">生年月日:</div> <div class="input"> <input type="text" id="birthday" name="birthday" th:value="${#dates.format(employeeForm.birthday, 'yyyy/MM/dd')}" />(YYYY/MM/DD) </div> </div> <div class="form"> <div class="label">権限:</div> <div class="input"> <input type="radio" th:field="*{authority}" value="1" th:checked="${authority == 1}" />一般&nbsp;&nbsp; <input type="radio" th:field="*{authority}" value="2" th:checked="${authority == 2}" />管理者 </div> </div> <div class="form"> <div class="label">部署名:</div> <div class="input"> <select th:field="*{deptId}"> <option value="1" th:selected="${deptId == 1}">営業部</option> <option value="2" th:selected="${deptId == 2}">経理部</option> <option value="3" th:selected="${deptId == 3}">総務部</option> </select> </div> </div> <div class="form"> <div class="label"></div> <div class="input"> <input type="hidden" th:field="*{empId}" /> <input type="submit" value="変更" /> </div> </div> </form> <form th:action="@{/list}"> <div class="form"> <div class="label"></div> <div class="input"> <input type="submit" value="戻る" /> </div> </div> </form> </div> </article> </div> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

対象のラジオボタンに対し、th:disabledを使ってtrue条件を記述します。

html

1<input type="radio" th:field="*{authority}" value="1" th:checked="${authority == 1}" 2 th:disabled="*{deptId} == 1" 3/>

※th:disabled="${employeeForm.deptId == 1}" でも可

th:ifを使った場合に、条件がfalseになると対象のタグならびに子要素がすべて出力されません。

投稿2020/07/27 07:19

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

提示の画面アクセス時に分かってることかと思いますので、その権限とやらを渡して、権限選択のところに埋め込めば良いのでは。

一般的には編集できない項目自体、表示させないので、下記のようにします。

html

1 <div class="form" th:if="ユーザーの権限が管理である"> 2 <div class="label">権限:</div>

なぜならhtmlは改竄可能だから、非活性にしたところで、編集できるようにできるからです。

そこを考慮しないなら th:disabled="{ユーザーの権限が管理 ? false : true}"をラジオボタンのところに入れれば非活性にはなります。

投稿2020/07/27 06:49

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/07/27 06:59

そもそも表示させる必要がなかったのですね。「非活性にしても改竄可能」というのは盲点でした。ご回答いただきありがとございました。
m.ts10806

2020/07/27 07:01

もちろん、formなどでコントローラに渡している場合、存在しないフィールドはnullになるので、Validアノテーションもそうですし、UPDATEの処理への考慮も必要です。
退会済みユーザー

退会済みユーザー

2020/07/27 07:08

詳しくご説明していただき非常に助かります。 その辺りも考慮したうえでやってみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問