`
hongzhguan
  • 浏览: 272745 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

javascript焦点到文本框末尾

阅读更多

在Jquery中可以直接调用$("#idEle").focus();来获取焦点。
这样当哪一项输入框为空是就将焦点移动那一项输入框..这项功能使用起来非常方便..但是存在一个小小的问题...

那就是obj.focus()将焦点移动到输入框后,会将文字光标(就是一闪一闪的竖线)移动到这个输入框的第一个字符的位置...就上面的判断而言..如果文本框中没有内容..obj.focus正好可以满足我们直接在文本框中输入内容而不用点击一下文本框以使文本有焦点...

但是,如果文本框中已经有内容了..但是这个内容不合法.obj.focus()同样的将光标移动到了这个文本框的第一个字符的位置..这时就会让注意用户体验的设计师郁闷了...我们需要的是文本框得到焦点,然后文字光标移动到文本框的最后,让用户可以不用点击文本框直接输入内容..输入的内容会在原来的内容的后面追加起来..

chrome/firefox 调用focus后会自动返回到输入框内容上一次鼠标的位置,如果不在最后需要移动到最后可以使用selectionStart属性

 

<script type="text/javascript">
    function test(obj) {
       if (typeof obj == 'string') obj = document.getElementById(obj);
        obj.focus();
        if (obj.createTextRange) {
            var rtextRange = obj.createTextRange();
            rtextRange.moveStart('character', obj.value.length);
            rtextRange.collapse(true);
            rtextRange.select();
        }
        else if (obj.selectionStart) obj.selectionStart = obj.value.length;
    }
</script><input type="text" id="txt1" /><input type="button" onclick="test('txt1');" value="执行" /><br />
<input type="text" id="txt2" /><input type="button" onclick="test('txt2');" value="执行" />
但是可编辑的“<div>”标签而不是“<input>”标签。“<div>”标签没有“selectionStart”属性;另一种不用迂回的代码实现:
<script type="text/javascript">
    function test(obj) {
       if (typeof obj == 'string') obj = document.getElementById(obj);
        obj.focus();
        if (obj.createTextRange) {//ie
            var rtextRange = obj.createTextRange();
            rtextRange.moveStart('character', obj.value.length);
            rtextRange.collapse(true);
            rtextRange.select();
        }
        else if (obj.selectionStart){//chrome "<input>"、"<textarea>"
            obj.selectionStart = obj.value.length;
        }else if(window.getSelection){
           
            var sel = window.getSelection();           
 
            var tempRange = document.createRange();
            tempRange.setStart(obj.firstChild, obj.firstChild.length);
 
            sel.removeAllRanges();
            sel.addRange(tempRange);
            //obj.focus();
        }
    }
</script>
 
 
<div id="txt1" contenteditable="true"></div>
<input type="button" onclick="test('txt1');" value="执行" /><br />
 
 
<div id="txt2" contenteditable="true"></div>
<input type="button" onclick="test('txt2');" value="执行" />
 
<br/>
<br/>
 
<input id="txt3" type="text"/>
<input type="button" onclick="test('txt3');" value="执行" /><br />
 
 
<input id="txt4" type="text"/>
<input type="button" onclick="test('txt4');" value="执行" />
分享到:
评论

相关推荐

    将鼠标焦点定位到文本框最后(代码分享)

    // 定义一个便捷方法,直接将焦点移动到文本框末尾 $.fn.focusEnd = function () { if (this.val() != undefined) { this.setCursorPosition(this.val().length); } }; ``` 这段代码首先定义了两个jQuery插件...

    多个文本框 按左右键自动移动

    3. 编写算法,根据当前焦点文本框的ID和移动方向,计算出下一个焦点应该落在哪个文本框上。 4. 更新焦点,使用编程语言提供的方法将焦点转移到新的文本框。 5. 如果移动过程中超出了文本框矩阵的边界,需要进行边界...

    javaScript让文本框内的最后一个文字的后面获得焦点实现代码

    此外,该技术的运用并不限于搜索输入场景,还可以广泛应用于各种表单输入、评论回复、消息编辑等多种Web应用中,只要文本框内容动态变化,且用户期望在变化后能够继续在文本框末尾输入的场景中,都可以使用这种技术...

    IF、FF兼容,TextBox获得焦点后,光标停在最后

    - 当文本框失去焦点时,`flag`被重新设置为`true`,然后移除`blur`事件监听器,防止在用户切换到其他文本框时仍然触发`onFocus`。 总的来说,这段代码提供了一个跨浏览器的解决方案,确保在Internet Explorer和...

    javascript经典代码大全.pdf

    13. 光标定位到文本框末尾:`()"&gt;`,当文本框获得焦点时,光标会被自动放置在文本的最后。 14. 判断上一页的来源:`document.referrer`,这个属性返回用户从哪个URL跳转到当前页面,可用于跟踪用户路径。 15. 最小...

    Js结合使用图层表格文本框实现简单编辑

    在JavaScript编程中,结合图层、表格和文本框可以创建用户友好的交互界面,用于编辑数据。本示例中,我们将探讨如何实现一个简单的编辑功能,允许用户修改表格中的特定行数据。 首先,我们需要理解问题描述。这个...

    js设置文本框中焦点位置在最后的示例代码(简单实用)

    `focus`函数确保了无论哪种浏览器,都能实现将光标定位到文本框末尾的功能。 在实际应用中,此技术可以广泛应用于需要追加输入的场景,例如在聊天应用中输入消息时,或者在填写表单的最后一个文本字段时自动定位...

    JavaScript经典代码大全

    10. 文本框光标定位:`&lt;script language="javascript"&gt;function cc(){...}&lt;/script&gt;&lt;input type=text name=text1 value="123" onfocus="cc()"&gt;` 当文本框获得焦点时,自动将光标移动到文本末尾。 11. 获取上一页...

    Javascript中最常用的技巧整理

    9. **焦点在文本框末尾**: 当用户聚焦在一个文本框时,光标自动置于文本末尾: ```javascript function cc() { var e = event.srcElement; var r = e.createTextRange(); r.moveStart("character", e.value....

    js实现文本框中焦点在最后位置

    在进行Web前端开发时,经常会遇到需要在文本框中自动定位光标到文本末尾的场景,尤其是在用户提交表单之后,如果表单中含有错误信息,通常需要将用户的注意力引导到需要修改的文本框中,并让光标处于文本末尾,以便...

    常用的javascript脚本

    10. 光标自动移动到文本框末尾: 利用`createTextRange()`和`moveStart()`方法,可以在文本框获得焦点时将光标自动移动到文字的最后。如: ```javascript function cc() { var e = event.srcElement; var r = e...

    Javascript中最常用的55个经典技巧

    13. 光标停留文本框末尾的脚本:&lt;script language="javascript"&gt;function cc(){var e=event.srcElement;var r=e.createTextRange();r.moveStart("character",e.value.length);alert("top="+t+"\nleft="+l);}。这段...

    JavaScript,html,css 经典代码

    10. **光标定位到文本框末尾**: - `&lt;script language="javascript"&gt;function cc(){var e = event.srcElement;var r = e.createTextRange();r.moveStart('character',e.value.length);r.collapse(true);r.select();...

    javascript小全

    11. **光标自动移动到文本框末尾**: `function cc()` 实现了当文本框获得焦点时,光标自动移动到文本框内容的最后。`createTextRange` 和 `moveStart` 方法配合 `select` 方法完成这一操作。 12. **获取上一页...

    JavaScript中最常用的55个技巧

    12. **光标定位到文本框末尾**:在文本框获得焦点时,可以通过创建和操作`TextRange`对象将光标移动到最后,如`()"&gt;`。 13. **获取上一页URL**:`document.referrer`属性可以获取当前页面的来源URL,即用户从哪个...

    IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点

    解决这个问题的关键在于,通过JavaScript手动调用文本框的`focus()`方法,使得所有文本框都能正确获得焦点。这通常是在Iframe内HTML文件的末尾执行,确保页面加载完成后进行。这种做法有效地解决了在IE6下文本框无法...

    JavaScript常用50例

    11. 光标定位:通过创建并选中文本范围(`TextRange` 对象)来实现光标始终位于文本框的末尾。当文本框获得焦点时,会自动执行这个功能。 12. `document.referrer`:返回用户从哪个URL访问当前页面,可以用来分析...

Global site tag (gtag.js) - Google Analytics