No.7ベストアンサー
- 回答日時:
「selectionPosition」がなんのことかわからないけど、重要そうじゃないから放置するね。
えっと readonly や disabled ということは、
『データは表示されるけど入力できなくていい』
ってことだよね。
まず、入力が不要ならどうして input 要素なんだろう?
カーソルが無くても『選択されてる感じ』が表現できればいいのか、それとも、カーソでの表現は強制されているのか?
1) 『|』必須
2) カーソルは文字間を表現できればいい
3) 文字を選択した感じを表現できればいい
4) カーソルは項目を選択している表現できればいい
1) なら、input 要素を使わないで p とか div とかで、カーソルは、文字を span で一文字ずつタグ付けして border-left で表現。
2) なら、1) の border-left の変わりに、左下寄りに、たとえば三角形▲の画像を background-image にするとか、ちょっとおしゃれな画像にするとか……かな?.gif なら、window.setInterval を使わないで点滅が表現できるから、ちょっとお得。
3) なら 1) の border-left を background-color で。
4) なら input type="radio" で、表現は CSS。
もちろん、キャレットをエミュレートすればいいのは確かです。
でもスマートではないので、なにか方法がないかと質問した次第です。
答えが見いだせないので、この質問は示させて頂きますね。
お付き合いいただきありがとうございました。
それと、selectionPositionは誤りで、setSelectionRangeでした。
訂正します。
No.5
- 回答日時:
仕切り直し。
「なにか方法はありますか?」
無し。
「キャレットは制御できるけど文字入力画面はで ない。なんて方法、ご存知のかたいらっしゃい ませんか?」
何のために?
それはできないけど、その奥にかくれた目的の解決はできるかもしれない。
この回答への補足
ボタン操作をUIとしたWebアプリで、カーソル移動を擬似的に行いたいためです。
システム的にはselectionPositionを制御してカーソル(キャレット)を移動しています。
文字入力画面が出てしまうと、UIであるボタンが隠れてしまうために無効にしたいのです。
擬似的に「|」などでキャレットを実装すれば不可能ではありませんが、プログラムが複雑になりバグも生みやすいと考えたのでこの質問を投稿した次第です。
No.4
- 回答日時:
「HTMLにimeoff="imeoff"のような属性を作って、ブラウザがそれを見つけた時にIMEを呼びださなければいいんじゃないですか?」
→ [ANo.2]
この回答への補足
>>どう実装する?
と問われたので答えたのであって、
独自開発で実装したところで普及する確率の方が低いですし、
そもそも随分前から本来の質問の趣旨とずれてるのでこのへんで閉めます。
おもしろい意見が聞けたのは良かったです!
No.3
- 回答日時:
指摘がシンプルだったから、特別ね!
タブインデックスは、ブラウザの『サンドボックス』の中のはなしなので全く別。
IME の切り替えは、HTMLの要素の属性によって、ブラウザが実装している機能。
たとえば、input type="password"
このときは、アルファベットだけど、それ意外の入力はローカル言語変換(日本の場合は日本語入力変換)モードにするようにブラウザが実装している。
日本語ならパスワードにひらがなを入力できても全然問題ない。漢字だと変換結果が見えないからむりだけど。でも、ブラウザはお節介にも日本語入力にしてくれてる。それは、いまのWebシステムにひらがなのパスワードを入力させるシステムがほとんどないし、IME が入力中の伏せ字に対応してないからそれでも問題にならないし、逆に親切。
じゃあ、質問者さんの質問/提案は、どの階層の機能で、現状の HTML だけで、どう実装する?
この回答への補足
HTMLにimeoff="imeoff"のような属性を作って、ブラウザがそれを見つけた時にIMEを呼びださなければいいんじゃないですか?
入力を求めるんじゃなくて、キャレットが制御出来れば良いので、ブラウザの判断でIMEを呼び出さないようにすればいいんじゃないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP 文字列を段落で分ける方法を教えて下さい。 2 2023/03/09 10:03
- JavaScript Javascriptを使ってQRコード読み取り、取得した情報をPOSTしたいと思っています。 1 2023/04/28 15:18
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#のシリアル通信プログラムで...
-
改行をカンマ変換、複数ある場...
-
Pythonの勉強を始めました。バ...
-
教えてください
-
ローマ数字などの文字化け対策...
-
Excel VBA 見本通りに...
-
氏名の入力チェックに全角スペ...
-
Eclipseの空白が変な...
-
半角スペースを含む文字列を変...
-
ASCII文字列以外を検出する正規...
-
なぜtabによるインデントはいけ...
-
ASP.NET TextBox 入力制限
-
Windows の文字コードで半角、...
-
XMLを作成してもタグしか表示さ...
-
テキストエリア内の改行禁止
-
\\n \\r \\t について
-
<TD><input type="text"></TD>...
-
テーブルの幅を固定するとnowra...
-
「:」について
-
GoogleChromeでレイアウトが左...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 見本通りに...
-
ASP.NET TextBox 入力制限
-
ASCII文字列以外を検出する正規...
-
Pythonの勉強を始めました。バ...
-
半角スペースを含む文字列を変...
-
php でtabを空白に変換して表示...
-
JavascriptでIMEのON,OFF制御
-
ホームページ制作でコピーライ...
-
stray '\\240' in programのエ...
-
氏名の入力チェックに全角スペ...
-
ソースコードの改行文字は何に...
-
ボタンコントロールのTEXT...
-
入力されたテキストが、全角か...
-
Eclipseの空白が変な...
-
指定した文字を始点にスペース...
-
C#のシリアル通信プログラムで...
-
Firefoxでのテキストエリアに入...
-
JSONパース時に改行があるとエ...
-
JSで全角英数記号を半角英数記...
-
カラムの末尾にスペースが入る
おすすめ情報