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

时间:2009-11-18 15:47:44

标签: javascript jquery html forms

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

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

7 个答案:

答案 0 :(得分:27)

我已经搜索了一下,有点发现你应该重点将你的值重新设置到所需的字段。

答案 1 :(得分:26)

如何将这样的内容设置为聚焦后将输入字段的值设置为自身?

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

答案 2 :(得分:6)

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

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

答案 3 :(得分:3)

你试过这个吗?

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

答案 4 :(得分:0)

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();
    }
}

答案 5 :(得分:0)

$(document).ready(function() {
    var $field = $("#formloginusername"),
        oldVal = $field.val();
    $field.focus().val('').val(oldVal);
});

DEMO:http://jsfiddle.net/X7Y8S/

我拿了代码&来自ahren在其他主题中的答案的演示,我觉得它很有用。

答案 6 :(得分:0)

这个解决方案对我很有用:

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