在一般的程序中.程式設計師做輸入框內容正確性檢測時一般喜歡透過判斷內容的合法性來確定焦點框.
如:
複製代碼代碼如下:
if(obj.value==""){
obj.focus();
return false;
}
這樣當哪一項輸入框為空是就將焦點移動那一項輸入框..這項功能使用起來非常方便..但是存在一個小小的問題...
那就是obj.focus()將焦點移動到輸入框後,會將文字遊標(就是一閃一閃的豎線)移動到這個輸入框的第一個字符的位置...就上面的判斷而言..如果文字方塊中沒有內容..obj.focus正好可以滿足我們直接在文字方塊中輸入內容而不用點擊一下文字方塊以使文字有焦點...
但是,如果文字框中已經有內容了..但是這個內容不合法.obj.focus()同樣的將遊標移動到了這個文本框的第一個字符的位置..這時就會讓注意用戶體驗的設計師鬱悶了...我們需要的是文字框得到焦點,然後文字遊標移動到文字框的最後,讓使用者可以不用點擊文字方塊直接輸入內容..輸入的內容會在原來的內容的後面追加起來..
下面的程式碼可以完成這個小細節:
複製代碼代碼如下:
<script language="javascript">
function getSelectPos(obj){
var esrc = document.getElementById(obj);
if(esrc==null){
esrc=event.srcElement;
}
var rtextRange =esrc.createTextRange();
rtextRange.moveStart('character',esrc.value.length);
rtextRange.collapse(true);
rtextRange.select();
}
</script>
這個程式碼是在使用者體驗的細節性上會對設計師有很大的幫助...