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

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

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

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

解決済

IE11でonclickが動かない

gobindar
gobindar

総合スコア0

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

1回答

0評価

0クリップ

4141閲覧

投稿2019/09/06 02:38

編集2022/01/12 10:58

お世話になっております。
当方Laravel5.5にてWebSiteを構築しております、
環境はWindows10
ブラウザはIE11 バージョン: 11.295になります。

前提

本件で扱う仕組みは、データをサイトに投稿する際に、
4階層に階層化されたカテゴリーをselectboxを
使用して1階層ずつ選択する仕組みです。
(ログインが必要な画面なのでリンクは貼ることができませんが、
ヤフオクの出品カテゴリ選択と同じです)
第一階層のカテゴリをselectボックスのoptionから
選ぶと第二階層のselectボックスが右に出現し、
かつその中身は第一階層で選んだカテゴリーの配下になっています。
なので、selectボックスのoptionタグに、onclickを使用して、
次の階層のselectボックスの出現・非出現をコントロールしています。
(第一階層で選んだものによっては、次の階層を出現させず、そのカテゴリー
で投稿させるものがあるため、中身の値で出現・非出現の判断が必要です)

やりたいこと

selectボックスの中のoption(データベースから出力した値をforeachで取得している)
をクリックした際に、onclickを起動させたいです。

現状

ChromeとEdgeではonclickが起動しますが、IEだと動きません。
Googleで検索したところ、下記の可能性があるという記事がありましたが、
本件にはあてはまらないようです。

・タグの id 属性 ( name 属性? ) の値と同一の関数名は呼び出されない
http://hensa40.cutegirl.jp/archives/908
・ブラウザでjavascriptが無効になっている
https://faq.support.biglobe.ne.jp/faq_detail.html?id=11426

selectboxのview

html

<select name='data_category_path[]' size={{$size}} class='list {{$filterSelect}}' {{$target}} id={{$hierarchy}} {{$empty}}> @foreach($dataitems->data_category_hierarchized[$key1] as $key2 => $val2) @if(old('data_category_path') === null || old('data_category_path') === "1000") <?php $selected = ""; ?> @else @if(array_search($dataitems->data_category_hierarchized[$key1][$key2]['data_category_id'],old('data_category_path')) !== false) <?php $selected = "selected"; ?> @else <?php $selected = ""; ?> @endif @endif <option class="disable_check hierarchy_{{$key1}}_option {{$key1}}_{{$val2['data-belongsto']}}" value="{{$dataitems->data_category_hierarchized[$key1][$key2]['data_category_id']}}" data-reference="{{$dataitems->data_category_hierarchized[$key1][$key2]['data_category_id']}}" data-belongsto="{{$val2['data-belongsto']}}" onclick="visible_handling({{$key1}},{{$dataitems->data_category_hierarchized[$key1][$key2]['data_category_id']}})" {{$disabled}} {{$selected}}> {{$dataitems->data_category_hierarchized[$key1][$key2]['data_category_name']}} </option> @endforeach </select> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="{{ asset('/js/datacategory_visible_handling.js') }}"></script>

起動させたいjs
datacategory_visible_handling.js

javascript

function visible_handling(hierarchy_num,category_id){ document.getElementById('hierarchy_1_notice').style.visibility ="hidden"; const from = hierarchy_num; var theme_check = theme.indexOf(category_id); // select theme if (theme_check >= 0){ // notice for( var i=1; i<=count_hierarchy; i++){ if(i<=from){ document.getElementById('hierarchy_'+i+'_notice').style.visibility ="hidden"; document.getElementById('hierarchy_'+i+'_notice').style.display ="block"; document.getElementById('hierarchy_'+i+'_notice_theme').style.display ="none"; if(i==from){ document.getElementById('hierarchy_'+i+'_notice').style.display ="none"; document.getElementById('hierarchy_'+i+'_notice_theme').style.display ="block"; document.getElementById('hierarchy_'+i+'_notice_theme').style.visibility ="visible"; } document.getElementById('hierarchy_'+i+'_block').style.display ="block"; } else{ document.getElementById('hierarchy_'+i+'_block').style.display ="none"; } } } else{ for( var i=1; i<=count_hierarchy; i++){ if(i<=(from+1)){ document.getElementById('hierarchy_'+i+'_notice').style.visibility ="hidden"; document.getElementById('hierarchy_'+i+'_notice').style.display ="block"; document.getElementById('hierarchy_'+i+'_notice_theme').style.display ="none"; if(i<(from+1)){ document.getElementById('hierarchy_'+(1+i)+'_block').style.display ="block"; document.getElementById('hierarchy_'+(1+i)+'_notice').style.visibility ="hidden"; document.getElementById('hierarchy_'+(1+i)+'_notice').style.display ="block"; } if(i==(from+1)){ //option var thirdElement = document.getElementsByClassName('hierarchy_'+i+'_option'); for (var k = 0; k < thirdElement.length; k++) { thirdElement[k].style.display ="block";} //notice document.getElementById('hierarchy_'+i+'_notice').style.display ="block"; document.getElementById('hierarchy_'+i+'_notice').style.visibility ="visible"; } } else{ document.getElementById('hierarchy_'+i+'_block').style.display ="none"; } } } }

宜しくお願い致します。

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

yambejp
yambejp

2019/09/06 02:42

onclickに当たる部分がよくわからない もっと簡単な例で提示されたほうがよいでしょう onclickの問題か他の部分の問題か判断つきません
gobindar
gobindar

2019/09/06 02:46

yambejp様、修正依頼ありがとうございます。 該当のselectbox部分と、 起動させたいjsのみの記載にいたしましたので、 再度ご確認いただけませんでしょうか。
yambejp
yambejp

2019/09/06 02:49

それと、onclickはjsの処理なので、ソースはphpベースではなく htmlベースで提示してください
gobindar
gobindar

2019/09/06 02:51

失礼致しました。修正致しました。 ご指摘、ありがとうございます。
m.ts10806
m.ts10806

2019/09/06 02:56

「ブラウザに出力されたHTMLを提示して」の意味かと。 viewファイルをそのまま提示されても他者では確認できない事のほうが多いので。 あくまでonclickが問題とすればLaravelやphpの要素は排除したほうが良いです。
gobindar
gobindar

2019/09/06 03:16

m.ts10806様 補足ありがとうございます。 今後気をつけます。 ご指摘の通り、質問文を変更致しました。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。