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

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

新規登録して質問してみよう
ただいま回答率
85.50%
jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

jQuery

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

Q&A

解決済

2回答

5368閲覧

jQueryUIのdialogがうまく開かない(IE)

unfcs

総合スコア11

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

jQuery

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

0グッド

0クリップ

投稿2017/10/06 06:56

###実現したいこと

IEで、Endterを押下した時に、dialogを表示したい。
FFでは表示されます。

###ソース

html

1<!DOCTYPE html> 2<html lang="ja"> 3 4 <head> 5 <script language="JavaScript" src ="jquery.min.js"></script> 6 <link  rel="stylesheet"  href="jquery-ui.min.css" type="text/css"> 7 <script language="JavaScript" src ="jquery-ui.min.js"></script> 8 <script language="JavaScript" src ="script.js"></script> 9 </head> 10 11 <body> 12 <input class="NO" type="text" maxlength="2"> 13 <div id="dialog" class="dialog" title="test" style="display:none">test</div> 14 </body> 15 16</html>

javascript

1$(function() { 2 3 $(document).on("keypress",".NO",function(e){ 4 5 if(e.which==13){ 6 $("#dialog").dialog(); 7 } 8 9 }); 10 11});

###試したこと
if(e.which==13)の外にdialog()を書くとダイアログが起動する。

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

win7
IE11

jQuery v1.12.4
jQuery UI(css) - v1.12.1
jQuery UI(js) - v1.12.1

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

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

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

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

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

guest

回答2

0

ベストアンサー

https://stackoverflow.com/questions/492865/jquery-keypress-event-not-firing

IEではwhichは機能していません。keyCodeで取得する必要があります。

追記

もう一点、IEではkeypressは飛んできません。keyupを使いましょう。

投稿2017/10/06 07:00

編集2017/10/06 07:16
masaya_ohashi

総合スコア9206

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

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

yambejp

2017/10/06 07:14

keyupじゃないですか?
masaya_ohashi

2017/10/06 07:16

あー、たしかに意図としては離した瞬間のほうがタイミングとして正しいですね。修正しておきます。
unfcs

2017/10/06 07:18

回答ありがとうございます。 ソースを下記のように変更したのですが、アラートは表示されますが、 ダイアログは表示されないです。。。 $(document).on("keydown",".NO",function(e){ if(e.keyCode===13){ alert("keyCode:13"); $("#dialog").dialog(); } });
masaya_ohashi

2017/10/06 07:23

F12キーを押して、開発者ツールのコンソールにエラーが出てないか確認してみてください。
unfcs

2017/10/06 07:36

keydown→keyupに変更したら、上手くいきました。 ありがとうございました。 $(document).on("keyup",".NO",function(e){ if(e.which==13){ alert("keyCode:13"); $("#dialog").dialog(); } });
guest

0

イベントをエンター時にキャンセルすればkeypressでもいけるかも
意外なことにwhichは効くっぽいです

javascript

1$(function() { 2 $(".NO").on("keypress",function(e){ 3 if(e.which==13){ 4 $("#dialog").dialog(); 5 e.preventDefault(); 6 } 7 }); 8});

投稿2017/10/06 07:22

yambejp

総合スコア114585

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

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

unfcs

2017/10/06 07:49

回答ありがとうございます。 また、keypress→keyupの指摘ありがとうございました。 そこだけを直しただけで、あとは、whichでも機能しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問