3

テキスト型の固定幅入力があります。ユーザーがこのフィールドに長い値を入力した場合、入力にフォーカスがなくなったときに値の先頭が表示されるようにします。

FF と IE のデフォルトの動作では、フィールド値のビューは同じ状態のままです。一方、Chromeは思い通りに動作しているようで、値の始まりを示しています。

textRange オブジェクトの Select() メソッドを使用して IE のキャレット位置をリセットしようとしましたが、これによりぼかしイベントが再度呼び出され、再帰チェーンが発生するようです (理由はわかりませんが、それは別の問題です)。

誰か提案はありますか?これを行う簡単な方法があるはずですか?

4

2 に答える 2

3

私はこのコードを一緒に作りました.IE8で動作します. 1setTimeoutミリ秒の理由は、テキスト ボックスの値が 2 回続けて設定された場合 (驚くべきこと)、IE が 2 番目の値を自動的に表示するためです。

function resetPosition(element){
    var v = element.value;
    element.value="";
    setTimeout(function(){element.value = v;},1);
}

IE7 でもテスト済みで、Chrome では目立たない (自動的に実行されます)。

于 2010-07-25T14:48:24.003 に答える
0

呼び出し element.setSelectionRange(0, 0)て位置を設定できます。

于 2018-10-25T15:34:37.283 に答える