いわゆるテキストボックスフラッシュバック入力は、入力ボックスの焦点が常に最初にあることを意味します。図に示すように、123456789を入力すると、987654321が入力ボックスに表示されます。
なぜこのデモを作りたいのですか?それは私がプロジェクトでそれに遭遇したからです。プロジェクトの要件は2つの入力ボックスで、1つは肯定的な順序で入力され、もう1つはフラッシュバックで入力されます。以下に、実装のアイデアとコードを書き留めます。
テキストフラッシュバック入力:
入力ボックスの焦点が常に最初にあることを確認する限り、入力するたびに、つまり再発を達成することができます。
コード:
関数セットポジション(ctrl、pos){//カーソル位置関数を設定しますif(ctrl.setselectionrange){ctrl.focus(); ctrl.setselectionrange(pos、pos);} else if(ctrl.createTextrange){var range = ctrl.createTextrange(); //選択領域範囲を作成します。コルプス(true); //カーソルを選択領域範囲の開始位置に移動します。 //選択領域が範囲が終了する位置を変更します。 //選択領域が範囲を開始する位置を変更します。Select(); //選択したコンテンツを現在のオブジェクトに同期する}}パラメーターPOSを0に設定している限り、問題ありません。
以下は、通常の削除とフラッシュバック入力を実装する完全なデモです。
<!doctype html> <html> <head> <title> </title> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <style> .content {width:300px; margin:0 autop; vign} 200px;} </style> <script src = "http://cdn.staticfile.org/jquery/2.1.1.1-rc2/jquery.min.js"> </scrip> <body> <div style = "" "> <ul> <li> <入力=" " type = "text"> </li> </ul> </div> <script> function setposition(ctrl、pos){//カーソル位置関数を設定します(ctrl.setselectionrange){ctrl.focus(); ctrl.setelectionrange(pos、pos); ctrl.ctrl.creaTextretの範囲) //選択領域範囲を作成します。コルプス(true); //カーソルを選択領域範囲の開始位置に移動します。 //選択領域の範囲の終了位置を変更します。 //選択領域範囲の開始位置を変更します。SELECT(); //選択したコンテンツを現在のオブジェクトに同期します}} $('。Elem ')。さらに、関連する関数を使用してフォーカス位置を取得できます。
関数getposition(ctrl){// ie supportvar caretpos = 0; if(document.selection){ctrl.focus(); var sel = document.selection.createrange(); sel.movestart( 'character'、-ctrl.value.length); caretpos = sel.text.length;} // firefox supportelse if(ctrl.selectionstart || ctrl.Selectionstart = ctrl. (CARETPOS);}要約:
テキスト入力フォーカスを設定して取得することにより、単語全体や変数などを削除するなど、他の特殊効果を実行できます。
この記事について良いアイデアがあれば、@Meができます。この記事があなたを助けることができることを願っています!