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

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

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

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

JavaScript

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

Q&A

2回答

2447閲覧

スマートフォンなどで打ち込み途中の文字を一時的に保管できますか?

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

JavaScript

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

0グッド

1クリップ

投稿2015/10/16 09:31

お世話になります、石井と申します。スマートフォンなどで名前の姓、名を打ち込み後に変換→確定の順番に操作をされる思いますが、変換前のひらがな状態を一時的にjavascriptかPHPでブラウザー保管出ますでしょうか?保管したものを呼び出して”かな”に表示させようとしてます。もし方法があれば教えていただきたいです。
よろしくお願いします。

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

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

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

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

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

guest

回答2

0

日本語変換への入力途中の文字を取得する方法としてJavaScriptにはCopmositionEventというのがあります。
MDN:CompositionEvent
compositionstartではじまり、未確定文字入力や部分変換とかする度にcompositionupdateが呼ばれ、確定後にcompositionendが呼ばれます。これらのeventでは、入力途中や変換前の文字列が入っているので、変換前の文字列も取得できます。これらを工夫すれば、変換前の文字列を取得できるかと思います。
ただし、注意事項があります。

  • 最新のスマホであれば大丈夫だと思いますが、全てのブラウザで対応しているとは限りしませんし、中には制限や動作が異なるモノががあったりします。
  • eventのコールバックで取得できる文字列について、変換前の文字なのか、変換中の文字なのか、変換後の文字なのかは区別できません(判るのは現在変換の途中なのか、確定後なのかだけです)。自分で変化を確認しながら、変換前や変換後を予測する必要があります。

たとえば、「ashitanotennki[SPACE][Enter]」と入力したとすると

compositionstart: "" // ここは現在選択されている文字列が入ります。 compositionupdate: "あ" compositionupdate: "あs" compositionupdate: "あsh" compositionupdate: "あし" compositionupdate: "あしt" compositionupdate: "あした" compositionupdate: "あしたn" compositionupdate: "あしたの" compositionupdate: "あしたのt" compositionupdate: "あしたのて" compositionupdate: "あしたのてn" compositionupdate: "あしたのてん" compositionupdate: "あしたのてんk" compositionupdate: "あしたのてんき" compositionupdate: "明日の天気" compositionend: "明日の天気"

というような形になります(ブラウザによって異なる場合もあります)。部分確定とかBACKSPACEとか入るとさらに複雑になります。
※上はローマ字入力の場合です。フリック入力だとローマ字入力の途中がなくなるだけですが、トグル入力だとまた別の様相になります。

投稿2015/10/16 12:28

raccy

総合スコア21735

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

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

退会済みユーザー

退会済みユーザー

2015/10/19 01:02

raccyさん、回答ありがとうございます。参考にさせていただきます。
guest

0

色々考えてみたのですが・・
・変換された時のイベントが取れない
・名前が漢字とは限らない
・予測変換から入力した場合は完全なひらがなを取れない
といった問題から、対応するのはかなり難しいと思います。
簡単にスクリプトを書いてみましたが、完全には対応できませんでした。

下記のスクリプトは
・ひらがなで入力される
・名前は全て漢字
・読みを全て入力してから変換する。(さ→佐藤という変換は考慮しない)
という前提で作成しました。

※実戦で使える品質ではないので参考までに。。。

html

1<input type="text" id="js-sei"> 2姓(かな)<input type="text" id="js-sei-kana">

javascript

1$(function() { 2 var kana = ''; 3 $('#js-sei').on('keydown blur', function() { 4 var input = $(this).val(); 5 if(input === '') { 6 $('#js-sei-kana').val(''); 7 kana = ''; 8 return; 9 } 10 if(input.match(/^[ぁ-ん]+$/)) { 11 // 入力文字が全てかなの場合は変換前と判断 12 kana = input; 13 } else if(input.match(/^[一-龥]+$/) && kana !== '') { 14 // 入力文字が全て漢字の場合は変換されたと判断 15 $('#js-sei-kana').val(kana); 16 } 17 }); 18});

追記

さとう→佐藤
ではなく
さ→佐
とう→藤
と、二段階で入力した場合も正しく取れませんね。。
対応するとしたら末尾のひらがなを正規表現で取得してkanaに文字列結合させるなどの処理が必要です。

投稿2015/10/16 11:52

編集2015/10/16 12:08
ShoheiTai

総合スコア897

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

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

退会済みユーザー

退会済みユーザー

2015/10/16 12:19

参考になります!ShoheiTaiさん、ありがとうございます!
ShoheiTai

2015/10/16 12:22

リアルタイムで問題なければ、jquery.autoKanaなどを使うと入力中のひらがなをリアルタイムで表示できます。 業務で使ったことはありますが、これも確実ではないので難しいところですね。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問