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

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

新規登録して質問してみよう
ただいま回答率
85.48%
ラジオボタン

ラジオボタンはフォームに使われる要素のひとつであり、ユーザに限られた選択肢からひとつの答えを選んでもらうというものです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

244閲覧

jQueryのバージョンによって動作がしない

退会済みユーザー

退会済みユーザー

総合スコア0

ラジオボタン

ラジオボタンはフォームに使われる要素のひとつであり、ユーザに限られた選択肢からひとつの答えを選んでもらうというものです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/05/05 23:59

前提・現状

■前提
現在現場にてWebアプリを作成しています。
HTML系経験の1~2か月しかなく、全くの初心者です。

■現状
WebアプリのページをJSPにて作成しています。
iteratorを利用した一覧表が三つ存在します。
その三つの表にはそれぞれラジオボタンが存在します。

〇ラジオボンタンの選択※(Bアラートの場合も)逆も同じ
・ラジオボタンはA表B表C表に関わらずラジオボタンの選択は一つのみ。
・A表のラジオボタンを選択した場合には、C表で選択していたラジオボタンがクリアされるような処理。

〇TAB切替時の処理として※(Bアラートの場合も)逆も同じ
・Aアラートを選択した状態で「Bアラート一覧TAB」に切り替えた時にはAアラートのラジオボタンをクリア。
・Cアラートを選択した状態で「Bアラート一覧TAB」に切り替えた時にはクリア処理なし。
(CアラートはTAB切り替えの対象外の為)

発生している問題、ソースコード

以下作成したソースコードではjQueryバージョン関係なく動作します。
https://jsfiddle.net/SiRO4t6a/do2wb9qu/
しかし、上記ソースコードからB表を削った状態(アラート件数が0件の場合の表示)でテストを実施した結果、
jQueryの[//ラジオボタン再設定処理]が反応しませんでした。
([//ラジオボタン再設定処理]:ラジオボタンの選択を一つのみにさせる処理)

しかし、jQueryのバージョンを3.1.1以上にしたところ正常に動作しました。
https://jsfiddle.net/SiRO4t6a/493k5k09/10/

質問内容

たまたまバージョンを変えて実行してみて出来ましたが、
最初のソースでは問題なく動いている為、単純なバージョンが悪いわけでは無いように思われますがどうでしょうか?
また、バージョンが問題だった場合、どのバージョンでも動作するようにする為にはどうしたらよいでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

切り分け

たまたまバージョンを変えて実行してみて出来ましたが、
最初のソースでは問題なく動いている為、単純なバージョンが悪いわけでは無いように思われますがどうでしょうか?

jquery.jsだけを入れ替えて事象が再現されるのなら、それが原因です。
他にも違うところがあるなら、ソースの異なる部分を少しずつ同じにして検証する必要があります。

既に後の祭りですが、通常は新しい機能を加えるときに一度に複数の場所を変えません。
複数個所を変更すれば、不具合発生時の原因特定に時間がかかるからです。

コンソール

コンソールでエラー出力状況を確認して下さい。

JavaScript

1TAB_2.style.display ='none'; // ReferenceError: TAB_2 is not defined

TAB_2 の定義はHTMLに依存しています。
HTML上にhttps://jsfiddle.net/SiRO4t6a/do2wb9qu/では存在していた <div id ="TAB_2"> が消失している為、ReferenceErrorになっています。

※id属性を持つ要素のグローバル変数化はレガシーブラウザが持っていた機能でいろいろと好ましくないので、getElementByIdjQuery() に置き換えた方がベターだとは思います。

Re: Amaki_Siro さん

投稿2018/05/06 00:42

編集2018/05/06 00:44
think49

総合スコア18162

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

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

退会済みユーザー

退会済みユーザー

2018/05/06 18:05

(think49)さん 切り分けについて、承知しました;;会社で利用しているバージョンが3.1.1以上であることを願いたいと思います;;ご教授ご指摘して頂きありがとうございます。 コンソールについて、jsfiddleにもコンソール確認できるところがあるんですね;;見方を確認しておきます。 例えonclick要素に含めていなくてもerrorになってしまうのですね;; そうだったんですね;;色々勉強になります。 アドバイス等もご助言をくださり、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問