IE:光标跳转到输入开始

时间:2012-02-13 14:54:42

标签: javascript jquery html internet-explorer

在文本输入中,如果文本存在,并且单击以添加更多,则光标会自动跳转到开头。它似乎只发生在IE中。

我一直在谷歌上搜索一段时间并尝试了一些我发现的例子,但似乎没有任何效果。不幸的是,输入是用jsp写的,我无法控制,我认为我遇到这个问题的唯一原因是因为那里有一些javascript硬编码。

<input type="text" id="simpleSearchString" class="text" onfocus="javascript:this.value=this.value.replace(/^\s+|\s+$/g,'')" onblur="javascript:this.value=this.value.replace(/^\s+|\s+$/g,'')" value="" maxlength="255" name="searchCriteria.simpleSearchString">

我想要做的就是删除这个跳转。

我认为添加以下代码会有所帮助,但似乎没有做任何事情:

jQuery("input#simpleSearchString").focus();

我不是100%确定开发人员试图通过'javascript:this ... etc'来实现,但也许我可以找到一种方法来删除它。

1 个答案:

答案 0 :(得分:2)

您可以杀死这些内联事件并插入您自己的事件;

var el = $("#simpleSearchString");
el[0].onfocus = el[0].onblur = null;

$(el).on("focus blur", function(e) {
    this.value = $.trim(this.value);    
    if ((e.type === "focus") && this.createTextRange) {
        var r = this.createTextRange();
        r.moveStart("character", this.value.length);
        r.select();
    }
});

(这假设其唯一的IE需要您重新定位插入符号)