这也可以在Knockout.js site上看到。
当我在 IE11 或 FF 38 中打开此页面时,转到示例2:点击编辑并点击名称 - Bert Bertington,文本框的Caret(光标)位于文本的开头,而 Chrome 则位于文本的最后。
如果这是一个功能,当IE11和FF38中的标签更改为文本框时,是否有人建议如何保持插入符号。
我能够通过重置observable的内容在FF38中解决这个问题,但是他在IE11中不起作用。
var str = self.msg();
self.msg('');
self.msg(str);
如果重要的话,我正在使用 knockout-3.2.0 。
更新
问题似乎是浏览器而不是Knockout(抱歉混淆)。
我尝试使用JQuery和javascript .focus()函数设置文本字段的焦点,并且在IE11和Firefox 38上仍然得到相同的结果。
任何帮助都将不胜感激。
答案 0 :(得分:0)
你是对的,这是不同浏览器如何处理焦点事件的问题。解决方法是手动将光标设置为文本框中文本的末尾。
可以找到执行此操作的示例here。如果您希望使用knockout自动执行此操作,则必须基于hasFocus绑定创建自己的自定义绑定,或直接修改KnockoutJS库。焦点事件在Knockout 3.2.0非缩小JS文件的第3813行触发。