当我点击有文本中有一个文本字段,将焦点设置到一个字符串的结尾(因为大多数人通常会做)光标的焦点跳跃到字符串的开始。
这只是发生在IE浏览器。 该应用程序是MVC 2使用jQuery和JavaScript。
一个如何去调试这种行为? 我不能使用Firebug,因为这只是一个IE浏览器的行为。 IE开发人员工具“脚本”选项卡中显示几乎没有任何信息可以帮助我调试。
我已经通过我们的jQuery梳理,并没有跳出的原因。
你会采取在调试这个问题哪些步骤。 难道CSS导致这种类型的行为? 我不这么认为。
可能的话,也可能是LABEL / INPUT元素的布局......这可能是肯定的因素。
这里是HTML表单。 JavaScript的是非常有限的,不会导致此问题,因此对于breivity的缘故,我将只显示该表单代码:
<div>
<span class="field">
<div><label for="Input_Sku" style="width: 130px;">SKU:</label><span class="field"><input id="Input_Sku" name="Input.Sku" type="text" value="" /><span></span></span><p class="message"></p></div>
</span>
</div>
<div>
<span class="field">
<div><label for="Input_ProductName" style="width: 130px;">Product Name:</label><span class="field"><input id="Input_ProductName" name="Input.ProductName" type="text" value="professional" /><span></span></span><p class="message"></p></div>
</span>
</div>
编辑:
这里是Javascript代码,这是相当有限:
<script>
$(document).ready(function() {
$('#reset').bind('click', function() {$('form').clearForm();});
$(".tbl").tablesorter({ debug: false });
$(".boxname").bind('click', function () {
$('.tog').toggle();$('.a').toggle();$('.b').toggle();
});
$.fn.clearForm = function() {location.reload();};
</script>
和脚本引用:
<script src="/Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui-1.8.6.custom.min.js" type="text/javascript"></script>
这是我应该先做一个可行的办法是通过JS皮棉运行页面,然后删除脚本引用一次一个,看看是否行为消失 - 但我在这里要为“建设性偷懒”的办法。
编辑#2
我试图[1],使用该代码块从[此篇]的溶液:
var el = $("#Input_Sku");
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();
}
});
但它仅适用一半。 将光标定位到初始FOCUS字符串的结束,但在此之后,任何形式在网页中的任何文本字段点击或光标的移动使光标跳回面前! 令人沮丧。
我要开始消除可能导致此我想脚本; 这将是一个巨大的痛苦,但这个bug已经成为显示塞 - 所以我越来越绝望。