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

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

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

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Spring

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

3回答

575閲覧

入力中の生年月日ドロップダウンから年齢を自動計算したい

yuatam

総合スコア10

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Spring

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/10/26 03:28

前提・実現したいこと

画面上で生年月日ドロップダウンの選択中(イベント実行前)に、
画面の入力フォームに年齢を自動計算した結果を表示したい。

発生している問題・エラーメッセージ

イベント実行後に自動計算を行うことは出来るが、
画面入力中に計算の処理を行うことが出来ない。

試したこと

JavaScriptを使用した自動計算、
Javaを使用した自動計算、
双方ともイベント実行後に行われてしまう。

補足情報(FW/ツールのバージョンなど)

Spring Java 8,1

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

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

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

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

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

dice142

2018/10/26 03:44

まずできているところまでのコードをご提示ください。また、「ドロップダウンの選択中」とはどの状態を指しますか?「イベント」とはどのイベントのことでしょうか?
guest

回答3

0

プルダウンをマウスでころころ転がしているときに、年齢を求めたい意図と解釈しました

  • プルダウンが1つの(1つに年月日がある)場合

プルダウンを作る時点で、今日に対して、何歳になるか確定している。つまり、イベントうんぬんのまえにページ描画時に確定している
つまりプルダウンを「2000/01/01 18歳」「2000/12/31 17歳」といった表示にすればよい

  • プルダウンが3つの(年と月と日)の場合
  1. 年のプルダウンをさわっているとき

年のプルダウンを選択している時点では、現在月や日は選択が済んでいる(デフォルト値でも選択はなされている状態)。その日が、一年の間で本日以降を指しているか、それより前を指しているかによって、各年に対応する年齢は一意に決まる。
従って例えば「01」月「01」日を指している状態では「2000年 18歳」と出せるし、「12」月「31」日を指している状態では「2000年 17歳」と指せる。これは日や月のonchangeで年プルダウンを再描画すればよいだけ
0. 月のプルダウン
日が今日を越えていなければ、月をかえてもかわらない。日が今日を越えていると、今月以降か否かで1歳分かわる
→不正確になるタイミングがあるため要件に対応できない
0. 日のプルダウン
月が今月でなければ、日をかえてもかわらない。月が今月であると、日をかえることで一歳分のずれが生じる
→不正確になるタイミングがあるため要件に対応できない
(逆に言えば、年と月日の2つのプルダウンにすれば解決できるとも言える)

結局、今できていないことに対応するには、プルダウンの数をかえるか、スピンボタンや数値入力のUIを導入するほかない。
→このUIの変更が想定するアプリに対して、どの程度不便になるかならないか、また不便になるとして1歳の違いを、マウスでホバー状態にあるほんのわずかな瞬間で知りたいかを検討すればよいと思われる

イベントが発火しないものを検知できると思うのはやめたほうがいいです。

投稿2018/10/26 08:13

papinianus

総合スコア12705

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

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

0

プルダウンを操作している時に、リアルタイムで計算したい、のですか?

操作中にイベントが発生しない以上、計算をする契機がありません。ですから不可能です。
※これが SpinButton のようなものなら、一回毎にイベントが発生するから計算できますが

※C# などで作り込むならば不可能ではないですが(オーナードローするときに、選択中のものを見つけたら計算する)、まず無駄としか思えない処理ですね

それに、日付が確定して初めて計算する意味が出てくるのですから、日付確定中に計算しても無駄でしょう。

投稿2018/10/26 08:41

tacsheaven

総合スコア13703

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

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

0

「選択中(イベント実行前)」とはなにか定義がわかりません。
なんらかのイベントを実行前にはトリガーがないのでなにも実行されることは
ないと思いますが・・・

なにもトリガーがない状態で処理をするためにはsetIntervalなどで
監視するとかですかね

投稿2018/10/26 04:31

yambejp

総合スコア114775

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問