一般的なプログラムでは、プログラマは入力ボックスの内容の正当性をチェックする際に、内容の正当性を判断してフォーカス ボックスを決定することを好みます。
のように:
次のようにコードをコピーします。
if(obj.value==""){
obj.focus();
false を返します。
}
このように、入力ボックスが空の場合、その入力ボックスにフォーカスが移動するのでとても便利ですが、ちょっとした問題があります。
つまり、obj.focus() がフォーカスを入力ボックスに移動した後、テキスト カーソル (つまり、点滅する垂直線) を入力ボックスの最初の文字の位置に移動します。上記の判断が関係します...テキスト ボックスにコンテンツがない場合... obj.focus を使用すると、テキスト ボックスをクリックしてテキスト フォーカスを作成せずに、テキスト ボックスにコンテンツを直接入力できます...
ただし、テキスト ボックスに既にコンテンツが存在する場合は、そのコンテンツが不正です。obj.focus() もテキスト ボックスの最初の文字の位置にカーソルを移動します。このとき、ユーザー エクスペリエンスは低下します。デザイナーは落ち込んでいます... 必要なのは、テキスト ボックスにフォーカスを取得し、テキスト カーソルをテキスト ボックスの末尾に移動して、ユーザーがテキスト ボックスをクリックせずにコンテンツを直接入力できるようにすることです。テキストボックスに入力した内容が元の内容に追加されます。
次のコードでこの細かい部分を完成させることができます。
次のようにコードをコピーします。
<スクリプト言語="javascript">
関数 getSelectPos(obj){
var esrc = document.getElementById(obj);
if(esrc==null){
esrc=イベント.src要素;
}
var rtextRange =esrc.createTextRange();
rtextRange.moveStart('character',esrc.value.length);
rtextRange.collapse(true);
rtextRange.select();
}
</script>
このコードは、ユーザー エクスペリエンスの詳細に関してデザイナーにとって非常に役立ちます。