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

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

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

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

jQuery

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

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Q&A

解決済

2回答

7062閲覧

【JQuery】inputタグで、全角文字の変更を監視するイベントはありますか?【AngularJS】

sanset

総合スコア186

JavaScript

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

jQuery

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

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

0グッド

0クリップ

投稿2016/10/11 06:11

Jqueryで、inputタグの文字列が変更された時にイベントが発火する「.change()」や「.keyup()」などがあります。
ただし、これらは全角文字の入力の際は、一度エンターキーを押して文字列を確定しないと発動しません。

そのため、
「change」などのイベントは日本語入力中はEnterを押すまでイベントが実行されず、
「オートコンプリート」や「残り文字数表示」などの機能を実装する際に非常に不便だと思っています。

出来れば全角文字の入力中に、入力中の文字に変更が加わったらイベントが発火してほしいのですが、Jquery、もしくはAngularJSでそれに対応したイベントはありますでしょうか?

これらの対応策として、setinterval(一定時間毎に処理を繰り返す)を実行し、時間毎に入力内容を監視し即反映させるという手法を取っていましたが、記述量が多くなるので正直これは使いたくないとずっと考えていました。

お詳しい方いらっしゃいましたら、是非教えていただきたいです。
どうかよろしくお願いいたします。

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

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

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

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

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

kunai

2016/10/11 06:33

想定されているブラウザ、バージョンを教えていただけますか?普通に$('input').keyup(function(){ console.log($(this).val()); }); で動作確認できましたが
sanset

2016/10/11 06:41

ありがとうございます。失礼しました。確認していたバージョンFireFox49.0.1(最新)です。今確認したら、chromeやsafariでは問題なく動作しますね…。
guest

回答2

0

ベストアンサー

最近のブラウザであればinputイベントがあります。

サンプル

javascript

1$(function(){ 2 $('input[name=hoge]').on('input',function(e){ 3 console.log($(this).val()); 4 }); 5}); 6</script>

HTML

1<input type="text" name="hoge">

投稿2016/10/11 06:24

編集2016/10/11 06:48
yambejp

総合スコア114769

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

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

sanset

2016/10/11 06:32

ありがとうございます。 自分の探し方が悪いのかもしれませんが、公式のリファレンスから探しても見当たりませんでした…。 .input()というイベントがあるということでしょうか?
yambejp

2016/10/11 06:48

普通にjQueryならonで拾えます
sanset

2016/10/12 00:03

yambejpさん、think49さんありがとうございました。 頂いた情報を元に調べてみます。
guest

0

以下の方法で解決できると思います。

AngularJSのng-modelで日本語入力の確定に悩まないDirective
http://qiita.com/koh110/items/4c5d22339ef2117e226a

投稿2016/10/16 13:45

tama2015

総合スコア63

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

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

sanset

2016/12/07 08:15

ご返信に気づかず申し訳ありません。回答ありがとうございます。 結局AngularJSでの実装はご破算になりましたが、今後の参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問