使用 JQuery 聚焦输入字段而不选择当前值文本

Posted

技术标签:

【中文标题】使用 JQuery 聚焦输入字段而不选择当前值文本【英文标题】:Focus input field with JQuery without selecting current value text 【发布时间】:2010-12-17 22:25:30 【问题描述】:
$("#myinputfield").focus();

在已设置值的输入字段上执行此操作会导致选择当前值。如何在不选择文本的情况下聚焦字段?

【问题讨论】:

您为什么要这样做?如果您选择一个字段,它也会被选中。这是标准的用户行为。您希望插入符号在哪里? (正文开始?正文结束?) @Phrogz 它的行为方式可能与 textareas 现在的行为方式相同(使用 Tab 键时不会选择内容)。跨浏览器不一样,但只要它是一致的.. 【参考方案1】:

我搜索了一下,发现您应该在关注后将您的值重新设置为所需的字段。

【讨论】:

见***.com/questions/13371430/… 当该字段被选项卡进入时,这在 chrome 中似乎不起作用。【参考方案2】:

像这样在聚焦后将输入字段的值设置为自身的方法怎么样?

$("#myinputfield").focus().val($("#myinputfield").val());

【讨论】:

【参考方案3】:

其他答案建议在聚焦后将输入字段的值设置为自身。如果在 Firefox 中,光标出现在输入的开头,而您希望它在结尾,则需要稍作修改。您必须先将值设置为空,然后再将其设置为之前的值。

var value = $("#myinputfield").val();
$("#myinputfield").focus().val('').val(value);

【讨论】:

【参考方案4】:

你试过了吗?

var txt = $("#myinputfield").val();
$("#myinputfield").focus();
$("#myinputfield").val( txt );

【讨论】:

【参考方案5】:
function focusField(id)
    var inputField = document.getElementById(id);
    if (inputField != null && inputField.value.length != 0)
        if (inputField.createTextRange)
            var FieldRange = inputField.createTextRange();
            FieldRange.moveStart('character',inputField.value.length);
            FieldRange.collapse();
            FieldRange.select();
        else if (inputField.selectionStart || inputField.selectionStart == '0') 
            var elemLen = inputField.value.length;
            inputField.selectionStart = elemLen;
            inputField.selectionEnd = elemLen;
            inputField.focus();
        
    else
        inputField.focus();
    

【讨论】:

【参考方案6】:
$(document).ready(function() 
    var $field = $("#formloginusername"),
        oldVal = $field.val();
    $field.focus().val('').val(oldVal);
);

演示:http://jsfiddle.net/X7Y8S/

我从 ahren 在其他主题的回答中获取了代码和演示,我认为这很有帮助。

【讨论】:

【参考方案7】:

这个解决方案非常适合我:

$("#myinputfield").focus(function (event) 
  var value = $("#myinputfield").val();
  setTimeout(function() 
    $("#myinputfield").val(value);
  ,10);
);

【讨论】:

以上是关于使用 JQuery 聚焦输入字段而不选择当前值文本的主要内容,如果未能解决你的问题,请参考以下文章

从聚焦的只读输入中删除文本插入符号/指针

当特定输入字段聚焦时,jQuery禁用输入字段

当用户在输入字段中输入数据时,如何从车把页面获取 jquery 中的输入文本值?

jquery根据选择值从表中填充文本输入

从文本字段复制值以选择下拉列表[重复]

jQuery 高级选择器