
テキストボックスがあり、そこに入力された文字列をキー入力の度に
取得し、その文字列をキーにDBを検索し結果を表示するシステムを
作成しています。ただし日本語入力に関しては変換中は無視して確定時に
DBの検索を行う仕様です。
JQueryのkeydownとkeyupイベントを利用してPCでは実現しています。
ただ、スマホ(Androidやiphone)だと、日本語入力の時に予測変換候補
みたいなのが表示されて、それを選んで入力を進める事が多いと思いますが、
この予測変換候補を選んでもkeydownもkeyupもkeypressもイベントが
発生しないようなので、随時入力文字列を取得する事ができません。
そこで、keydownやkeyupイベントではなくて、タイマーで一定間隔で
テキストボックスの入力文字を取得する事も試してみましたが、この
場合だと日本語変換途中も文字も取得できてしまい、さらに日本語変換中
かどうかの情報が得られないので、変換中は無視という要件が満たせません。
keydownもkeyupもkeypressも発生しないので、どうしようもなさそうな
気はしていますが、ダメ元で、何か良い方法がないかお知恵を借りたく
投稿させてもらいます。宜しくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは。
では、テキストボックスにフォーカスされている場合、
ウィンドウのどこを押してもvalを取得するというふうに変えてもダメですかね?
$(function(){
$("input:text").on("focus", function(){
$(window).on("click blur keydown keyup keypress change touchstart", function(){
var new_val = $("input:text").val();
$(".text").text(new_val);
});
});
});
さっきご飯食べながらだったので、
今ちょっと、作ってみました。
テキストエリアのリアルタイム取得で下のテキスト<p>に反映するみたいなのを。
私のアンドロイド5.1.1は大丈夫だったんですけど、iosは自信ないです。
なるほど、windowのどこを押しても反応する作りですか。
この方法を基に改良して作りこんでみたいと思います。
ご親切にお付き合い頂き大変感謝しています。ありがとうございました。
No.1
- 回答日時:
こんにちは。
キー入力のたびにとのことなので、必要なイベントを全て突っ込んで仕舞えばよいと思います。
例
$(function(){
$("input:text").on("click blur keydown keyup keypress change touchstart", function(){
var anchor_text = $("input:text").val();
//取得したのを結果に出すスクリプトを書く
});
});
多分、今回はこの中の.change()あたりが必要だったんじゃないかなあと思います。
フォーカスされたテキストボックスの中身が変わったら、こうするする、というイベントなので予測変換選択後にテキストが変われば取得してくれる気がします。
試してないけど。
頑張ってください。
ご回答ありがとうございます。
試してみましたが、changeイベントだと、
テキストボックスからフォーカスが離れないと
発火しないようです。まだandroidしか試して
いませんが、andoroidだと予測変換候補の選択だと
ご提示頂いたイベント全て発火しませんでした。かなり厄介です・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaの初歩的な質問です。
-
javascriptで文字列のsjis利用...
-
javaの文字コード変換について
-
C言語32bitから64bitの移行につ...
-
Visual Basic でのコードをASCI...
-
DBから取得したデータの文字化け
-
半角カタカナをローマ字変換す...
-
JIS8の半角かな文字をUnicodeの...
-
特殊文字「\\」の変換の方法
-
PerlプログラムをJavaに変換す...
-
javaで質問です。 文字列2023/2...
-
エクセルVBAで「〜」が表現でき...
-
半角カナ文字の変換
-
TEXTAREAからのデータを改行入...
-
Visual Studio 6.0でビルド可能...
-
あるディレクトリにある複数の...
-
javascript わかる人教えてくだ...
-
オラクルで、半角文字を全角に...
-
1~100までの数字を表示したい
-
C言語 重複しない4ケタの乱数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
javascriptで文字列のsjis利用...
-
int型のゼロ埋め
-
javaの初歩的な質問です。
-
Path型をString型へ変換する(Java)
-
C言語32bitから64bitの移行につ...
-
JavaのStringクラスに「外字」...
-
エクセルVBAで「〜」が表現でき...
-
カタカナの「ソ」以降の文字が...
-
Windows-31Jからutf-8への変換...
-
pasteHTMLでパスが勝手に変換さ...
-
DBから取得したデータの文字化け
-
数字のみにしたい
-
Visual Basic でのコードをASCI...
-
ジェネリックのキャストをした...
-
補数について質問
-
publicがprotectedになった場合...
-
error C2440: 'static_cast' : ...
-
文字を整数(int)に変換
おすすめ情報