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

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

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

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

JavaScript

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

解決済

iPhoneで一部のjavascriptが動かない

ataru2222
ataru2222

総合スコア153

JSP

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

JavaScript

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1回答

0評価

1クリップ

434閲覧

投稿2022/01/24 11:37

前提・実現したいこと

iOS(iPhone)のみで一部のJavascriptがうごかない。
こちらを動くようにしたいです。

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

PCのブラウザでは動作しており、スマホのアンドロイドOSでもきちんと動くのですが、iPhoneのみでうごかない状況です。

画面イメージ
イメージ説明
javascript
・開始日をいれると終了日を入力
・開始時間をいれると終了時間を入力

こちらについてはiPhoneでも動くことを確認しているのですが、
合計時間の欄の時間差を自動計算する処理については反応しません。

該当のソースコード

HTML(jsp)

<form method="POST" name="task_report_form" action="<c:url value='/create_task_report' />" > <label for="mission_name">ミッション名</label><br /> <input type="text" id="text_mission" value="mission" disabled><br /> <input type="hidden" id="text_mission_id" name="mission_id" value="" /> <label for="mission_name">カテゴリー名</label><br /> <input type="text" id="text_category" value="category" disabled><br/><br/> <input type="hidden" id="text_category_id" name="category_id" value="" /><br/> <!-- リストをEL式で反映させる --> <label for="task_name">タスク名</label><br /> <select name="task_name" id="task_name" onChange="changePulldown()"> <c:forEach var="task_list_list" items="${task_list_list}" varStatus="status"> <option value="${task_list_list.task_name},${task_list_list.task_list_id}">${task_list_list.task_name}</option> </c:forEach> </select> <br /><br /> <input type="hidden" id="text_task_list_id" name="task_list_id" value="" /> <input type="hidden" id="text_task_list_name" name="task_list_name" value="" /> <label for="start_time">開始日時</label><br /> <input type="date" id="start_date" name="start_date" />&ensp; &ensp; <input type="time" id="start_time" name="start_time" /> <br /><br /> <label for="end_time">終了日時</label><br /> <input type="date" id="end_date" name="end_date" />&ensp; &ensp; <input type="time" id="end_time" name="end_time" /> <br /><br /> <label for="total_time">合計時間</label><br /> <input type="text" id="total_time" name="total_time" disabled/> <br /><br /> <label for="comment">コメント</label><br /> <input type="text" id="comment" name="comment" /> <br /><br /> <div class="div_create_report2"> <input type="hidden" name="_token" value="${_token}" /> <button type="submit" id="submit_button" class="btn btn-custom01" > <span class="btn-custom01-front">レポートの登録</span> </button> </div> <input type="hidden" id="m_c_name" value="${m_c_name}"> <input type="hidden" id="c_t_name" value="${c_t_name}"> <script src="${pageContext.request.contextPath}/javascript/form_controll_task_report.js"></script> </form>

javascript

//日付が入力された時の自動処理 const start_date = document.getElementById('start_date'); start_date.addEventListener('change',()=>{ const end_date = document.getElementById('end_date'); end_date.value = start_date.value; }); //開始時間が入力されたら終了時間を入力 const start_time = document.getElementById('start_time'); start_time.addEventListener('change',()=>{ const end_time = document.getElementById('end_time'); end_time.value = start_time.value; }); //終了時間が入力された時の自動計算 const end_time = document.getElementById('end_time'); end_time.addEventListener('change',()=>{ time_add(); }) //終了日が入力された時の自動計算 var end_date = document.getElementById('end_date'); end_date.addEventListener('change',()=>{ time_add(); }) //時間を自動計算して、total_timeに表示するメソッド function time_add() { var start_date = document.getElementById('start_date'); var start_time = document.getElementById('start_time'); var end_date = document.getElementById('end_date'); var end_time = document.getElementById('end_time'); const total_time = document.getElementById('total_time'); start_date = new Date(start_date.value + " " + start_time.value); end_date = new Date(end_date.value + " " + end_time.value); const differ = end_date.getTime() - start_date.getTime(); const hour = Math.floor(differ/1000/60/60); const min = Math.floor(differ/1000/60)%60; if(hour < 0 || min < 0 || hour >= 24) { total_time.value = "0以下、24時間を超える値は入力できません。" } else { total_time.value = String(hour).padStart(2,"0") + ":" + String(min).padStart(2,"0"); } }

試したこと

https://chaika.hatenablog.com/entry/2017/11/24/090000
https://qiita.com/myzkyy/items/ce6a26c9c59612e6f515

こちらのサイトを参考にして解決を試みたのですが
・勉強のためJQueryを使わずにしたのですが、JQueryの記述でよく分からず
(対応するイベントのCSSにcursor: pointer;を追加する)

・Body直下だと動かなくなる(?)
Divを配置して囲ってみたのですが、iPhoneでは駄目でした。

こちらの記述を使うと一番手っ取り早いようなのですが
p {
cursor: pointer;
}

自分のようなHTMLの場合、
Pにあたる部分は何にしたら良いのでしょうか?

詳しい方いらっしゃまいたら、ご教授ください。
よろしくお願いたします。

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

ここにより詳細な情報を記載してください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

JSP

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

JavaScript

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。