jQuery 将光标聚焦在 firefox 中的值之后

标签 jquery html

我正在将 jQuery 焦点放在文本字段上。在 Chrome 和 IE 中,光标在值之后开始,但在 Firefox 中,光标在值之前开始。 我该如何使它在 firefox 中的值之后开始?

相关代码如下:

$($.cookie("inputFocus")).focus()

下面是完整的 jQuery 代码:

<script>
$(document).ready(function() {
    $("#state").change(function () {
    this.form.submit();
})
var focus = $.cookie("inputFocus");
$(focus).focus();
$(focus)[0].setSelectionRange($(focus).val().length, $(focus).val().length);

$("#supplier_name").val($("#supplier_name").val());
$("#aircraft_type").val($("#aircraft_type").val());
var typingTimer;                
var doneTypingInterval = 600;  

$('#supplier_name').keyup(function(){
    clearTimeout(typingTimer);
    if ($('#supplier_name').val) {
        typingTimer = setTimeout(doneTyping, doneTypingInterval);
    }
    $.cookie("inputFocus", "#supplier_name"); 
});

$('#aircraft_type').keyup(function(){
    clearTimeout(typingTimer);
    if ($('#aircraft_type').val) {
        typingTimer = setTimeout(doneTyping, doneTypingInterval);
    }
    $.cookie("inputFocus", "#aircraft_type"); });
function GetQueryStringParams(sParam)
{
    var sPageURL = window.location.search.substring(1);
    var sURLVariables = sPageURL.split('&');
    for (var i = 0; i < sURLVariables.length; i++)
    {
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam)
        {
            return sParameterName[1];
        }
    }
}

var state = GetQueryStringParams('state');
var supplier_name = GetQueryStringParams('supplier_name');
var aircraft_type = GetQueryStringParams('aircraft_type');

    if(supplier_name === "" && state === "any" && aircraft_type === "") {
            $('#clear').attr('disabled','disabled');
    }
    $("#clear").click(function() {
    if(state === "any") {
        $("#aircraft_type").val("");
        $("#supplier_name").val("");
    } else {
        $('#state option:selected').remove();
        $("#aircraft_type").val("");
        $("#supplier_name").val("");    
    }
    });

function doneTyping () {
    $("form").submit();
}

});
</script>

最佳答案

您可以使用setSelectionRange设置插入符位置。

试试我的演示 here :

$('input').focus();
$('input')[0].setSelectionRange($('input').val().length, $('input').val().length);

关于jQuery 将光标聚焦在 firefox 中的值之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14617928/

相关文章:

javascript - 当加载一个 javascript 库时,另一个停止工作

python - 如何检查 Django 中的字段/属性是否为空?

html - 任何人都有在溢出自动触发时在滚动条外的 div 上设置边距的想法?

javascript - 类型错误 : t is undefined

jquery - 如何在 JSF <h :commandLink> or <h:commandButton> action is performed? 之前执行 jQuery click() 事件

jquery - 编辑 Bootstrap 列时动画缓慢

php - 连接来自多个 MySQL 表的结果并使用 PHP 输出

jQuery/CSS - 如何设置元素在另一个元素中首次出现的样式?

html - HTML 表格中隐藏的 aria 标签(用于屏幕阅读器的可访问性)

jquery按钮颜色开关不起作用