gpt4 book ai didi

javascript - Internet Explorer 中的只读输入框错误

转载 作者:数据小太阳 更新时间:2023-10-29 05:06:41 28 4
gpt4 key购买 nike

我有一个奇怪的错误,好吧,MSIE 有。

似乎它在所有主要的 MSIE 版本上都失败了:6、7、8 和 9 (!)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" ><head><title>test</title>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
var test=jQuery('#in');
test.focus(function(){
if(test.val()=='empty')test.val('');
test.attr('readonly',false);
});
test.blur(function(){
if(test.val()=='')test.val('empty');
test.attr('readonly',true);
});
});
</script>

</head><body>

<input type="text" value="empty" readonly="readonly" id="in"/>

</body></html>

让我解释一下这个系统是如何工作的以及出了什么问题。

当用户单击(聚焦)输入框时,应使输入框可编辑(即丢失只读标志)。然后,当她/他离开输入框(即模糊事件)时,将完成一些处理(代码中未显示)并将输入框设置为只读。

这在大多数浏览器(firefox、opera、基于 webkit)中都很有效,但在任何版本的 IE(包括 9 beta)中都没有。问题是在 IE 中,用户必须点击输入框两次。

此时,你可能会问输入框第一次是只读的吗?否。我对其进行了测试,javascript 报告它是可编辑的。

很容易修复,只需在输入框上触发一个点击事件(模拟用户的双击行为),不是吗?不,.click().focus() 都失败了。不知道为什么。

编辑:知道光标确实显示在文本框中,至少是可见的。

重要提示各位,请在回答之前至少尝试一下代码!

最佳答案

我不会说这是一个错误。如果更改该值,也会删除当前的 textRange。

尝试 test.select() ,它应该将光标返回给输入。

test.focus()

将导致一个循环,该循环将以“内存不足”错误结束。

关于javascript - Internet Explorer 中的只读输入框错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3856266/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com