使用JS专注于文本字段并在文本末尾放置标记

时间:2011-10-24 21:38:36

标签: javascript jquery

在js中查找queryform中的textfield q并将其聚焦:

JS:

if($("#queryform").length){ document.queryform.q.focus(); }

HTML:

<form id="queryform" name="queryform" action="" method="post"><input type="text" name="q" /></form>

当前功能

在chrome中:找到文本字段并聚焦并突出显示文本

在FF和IE中:文本区域被聚焦,标记位于后面

想要的功能

在所有浏览器中都相同:文本字段是聚焦的,文本未突出显示,标记在文本的末尾

jquery的

我已在网站上使用jquery,因此最好使用整洁的jquery解决方案

1 个答案:

答案 0 :(得分:2)

请参阅此解决方案:

Use JavaScript to place cursor at end of text in text input element

第一个解决方案不起作用,但他的脚本确实如此,请参阅http://jsfiddle.net/WcGLP/

(function($)
{
    jQuery.fn.putCursorAtEnd = function()
    {
    return this.each(function()
    {
        $(this).focus()

        // If this function exists...
        if (this.setSelectionRange)
        {
        // ... then use it
        // (Doesn't work in IE)

        // Double the length because Opera is inconsistent about whether a carriage return is one character or two. Sigh.
        var len = $(this).val().length * 2;
        this.setSelectionRange(len, len);
        }
        else
        {
        // ... otherwise replace the contents with itself
        // (Doesn't work in Google Chrome)
        $(this).val($(this).val());
        }

        // Scroll to the bottom, in case we're in a tall textarea
        // (Necessary for Firefox and Google Chrome)
        this.scrollTop = 999999;
    });
    };
})(jQuery);