人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Javascriptでの入力補完機能の質問です
下記の条件に合う入力補完機能の作成法、または作成に役立つページを教えていただけたら助かります。
1.日本語もOKな入力補完機能。(「あ」と打ち込んだら「あいう」等複数入力候補を表示、選択したらその文字が入力される的な)
2.複数行のTextBox対応
3.複数回使用可能
→例)一つのTextBoxで、「あ」と打ち込み、選択候補「あいう」を選択して入力。
その後、改行して再び「あ」と打ち込み、選択候補「あいうえ」を選択ができる。
4.選択候補に半角スペースや改行などが使用可能。
suggest.jsでは上記の3に関してはうまく動きませんでした。
→一応複数行もできるのですが、
a)検索項目に半角スペースをいれると、
Suggest.LocalMulti.prototype.delim = ' '; // delimiter
こちらの設定により動きが怪しくなる。
b)上記のdelimの設定を変更しても、うまく動かない。(例えば一度選択項目選択後、複数改行を入れた後に文字を入力しても検索項目がでない」)という感じでうまく臨んだ処理ができませんでした。

●質問者: your
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:JavaScript js Prototype あい 作成
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 牛乳先生(tukihatu)
●60ポイント

複数行の入力補完は聞いたことないので、出回ってはないんじゃないですかねぇ…

作ったことはないのでアドバイス的なことだけ…

まず、なぜ出来ないのか原因出し。

・サンプルは一行テキストボックスで複数行だと出来ないから複数行に問題がある。

・複数行の改行に対応していないのではないか。

・そもそも複数行と一行では仕様が違うから変える必要があるのではないか。一行の方はvalueだし。

etcetc…

その後は解決方法を。

この場合だと、上の原因出しの結果から、複数行はvalueじゃないからinnerHTMLで複数行のデータを習得して、入力した項目を割り出して、それに対してのみ入力補完をかければうまくいくんじゃないか、と推測します。

で、それに基づいて実行。

・ボックスのテキストをまず吸い出しておく(テキスト01)

・入力確定がされたら、またテキストを吸い出す(テキスト02)

・テキスト01と02を比較して、入力された文字を特定(テキスト03)

・テキスト03の位置から半角スペースか改行が出てくるところまでさかのぼり、そのデータを収得(テキスト04)

・テキスト04と03を合体(テキスト05)

・テキスト05に大してjsの命令を適応させる

・入力補完が押されたら、テキスト02に入っているテキスト05を置換え

・テキスト02をテキスト01に代入

・テキスト02をボックスに戻す

これで理論的にはできるはずです。

ただ理論的なので、付随する命令がない場合はいろいろ方向転換が必要かと思いますが…(入力確定の部分が複数行でもちゃんと収得できるか?とか)

おもいっきりはずしてたらすいません。

◎質問者からの返答

回答ありがとうございます。

ただ、残念なことに当方大変初心者でして、上記をみてもぱっとプログラムが思いつかないのが1点。

>・テキスト03の位置から半角スペースか改行が出てくるところまでさかのぼり、そのデータを収得(テキスト04)

また、ここの部分がネックになりそうだなぁ、と。(入力候補に設定予定の文字列には半角スペースや改行があるため)

他に何かよい代替案がありましたらよろしくお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ