48
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

工数管理ツールを開発してみた

Last updated at Posted at 2020-05-30

#やったこと

工数を管理するウェブアプリを開発しました。
言語:Java(Spring), JavaScript

手順

  1. プロジェクトを作成(この際に、プロジェクトコードを登録する)
  2. 1.で登録したプロジェクトコードを入力することで、追加/編集/閲覧したいプロジェクトに遷移
  3. タスク追加(タスク名、工数、開始日、終了日、担当者名など)
  4. タスク閲覧(担当者がある期間にどんなタスクをどれだけの工数で終えたのか、プロジェクトの担当者がそれぞれどれだけの工数を費やしているか、など)

#画面
プロジェクトコード入力画面
スクリーンショット 2020-05-30 13.53.52.png

タスク追加(および修正)画面
スクリーンショット 2020-05-30 13.54.28.png

タスク閲覧画面
スクリーンショット 2020-05-30 13.53.05.png

#詰まったこと
##JavaScriptとThymeleafの連携?
前回の記事にも書きましたが、例えば、JavaScriptで

target.html('<a th:href="@{/hello}">サンプル</a>');

と書いても、aタグが機能しなかったりしました。

###解決策

<script type="text/javascript" th:inline="javascript">
    const link = /*[[@{/hello}]]*/'';
    target.html('<a href="' + link + '">サンプル</a>');
</script>

と書いてあげることで解決しました。
このように、JavaScriptでThymeleafのth:が使えない、といったことに苦戦しました。

##tableタグ内にformタグを書けない問題
例えば、

<table>
    <tr>
        <th>#</th>
        <th>名前</th>
        <th>ボタン</th>
    </tr>
    <tr>
        <form>
            <td>1</td>
            <td><input type="text"/></td>
            <td><input type="submit"></td>
        </form>
    </tr>
    <tr>
        <form>
            <td>2</td>
            <td><input type="text" /></td>
            <td><input type="submit"></td>
        </form>
    </tr>
</table>

画像だと、
スクリーンショット 2020-05-30 14.21.26.png

こんなケースです。これをChromeのディベロッパーツールで見てみると、、、
スクリーンショット 2020-05-30 14.27.43.png

おかしい。。。formタグ、そこで閉じちゃダメ。。。

###解決策

  1. formタグにid属性を付与する
  2. inputタグのform属性に1.で付与したidを記載する

こうすることで、formタグのidに対応したinputのvalue値を送信することができます。
ちなみに、formタグはinputタグの上でも下でもどこでも記載して良いそうです。

上の例だと

<table>
    <tr>
        <th>#</th>
        <th>名前</th>
        <th>ボタン</th>
    </tr>
    <tr>
        <form id="form_01"></form>
        <td>1</td>
        <td><input type="text" form="form_01" /></td>
        <td><input type="submit" form="form_01"></td>
    </tr>
    <tr>
        <form id="form_02"></form>
        <td>2</td>
        <td><input type="text" form="form_02" /></td>
        <td><input type="submit" form="form_02"></td>
    </tr>
</table>

ディベロッパーツールで見ると

スクリーンショット 2020-05-30 14.32.57.png

このようになっているはずです!おそらくこれでうまくいきます。

以上です。最後まで読んでくださりありがとうございました。

#参考
formタグは入れ子にできない&その対処法
HTML5 FORMとINPUTを分けて記述する方法

48
47
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?