Javascript 为什么在IE6中文本字段会无缘无故地被禁用?
我在这个巨大的JSF页面上做了一些更改,这个页面也充满了Javascript。我不知道是什么变化导致了问题的发生 问题是:在执行一些Javascript之后,页面中的所有文本字段都变成只读。这个问题在IE7和Firefox中都没有出现。我已经调试了所有的javascript,没有抛出错误!而且没有任何东西告诉字段成为只读,因为它在IE7中工作正常 不确定问题是什么,可能与CSS有关吗?还是Javascript?为什么它只发生在IE6上Javascript 为什么在IE6中文本字段会无缘无故地被禁用?,javascript,internet-explorer-6,Javascript,Internet Explorer 6,我在这个巨大的JSF页面上做了一些更改,这个页面也充满了Javascript。我不知道是什么变化导致了问题的发生 问题是:在执行一些Javascript之后,页面中的所有文本字段都变成只读。这个问题在IE7和Firefox中都没有出现。我已经调试了所有的javascript,没有抛出错误!而且没有任何东西告诉字段成为只读,因为它在IE7中工作正常 不确定问题是什么,可能与CSS有关吗?还是Javascript?为什么它只发生在IE6上 注意:“不支持IE6不是一个选项”嗯。。。不支持IE6??;
注意:“不支持IE6不是一个选项”嗯。。。不支持IE6??;) 建议禁用CSS并查看问题是否消失。不过,我不知道有任何CSS标记可以禁用字段 除此之外,调试是您唯一的选择。删除所有的.js,然后一行一行地添加它,直到有东西断开为止
如果没有看到一些代码,我们可能很难帮助您。虽然IE在某些情况下可能会有bug,但我很确定这不是IE bug 如何判断字段是只读的?您是否得到任何光学确认,或者只是您无法再单击它们?在这种情况下,我敢打赌这是一个不可见的DIV或其他布局元素,由于CSS设置,它会在输入字段上方挤压自己 尝试查找是否是布局问题
如果它们在
中确实被禁用,则需要显示一些JavaScript或(更好的)链接。查看页面的HTML是否在这些输入元素上设置了“disabled”属性。如果是这样,则在页面加载后,将使用javascript来启用元素。这是一种常见的技术,可以防止用户在加载所有脚本之前过早地尝试与页面交互
如果是这样的话,那么您可能已经打破了脚本识别需要启用哪些元素的方式。因为这只发生在IE6上,所以听起来脚本可能正在执行一些深奥的DOM导航,这是由于标记或CSS的更改而中断的
不幸的是,您必须通过还原到以前的版本进行调试,直到您确定您所做的更改破坏了页面。根据此处的其他答案以及您对这些问题的一些评论,您的页面中似乎有一个JavaScript函数,用于设置启用或禁用元素 为了提供帮助,我们必须查看您的代码。不过,你可以自己做一些事情来解决你的问题:
最终,你会在一个你不应该碰到的地方碰到那个断点。查看调用堆栈,看看是什么导致了它(哪个函数导致了对该函数的调用)。仍然不确定该构建发生了什么,但我确定的是,我所做的所有Ajax修改都是导致该问题的原因 情况是这样的:
经验教训:“重构一次可能需要一周的时间,但没有每个问题都需要更长的时间”听起来你需要“取消制作”你的更改,然后逐个添加它们,直到找到破坏它的更改。祈祷它不会因为两个更改的组合而破坏。默认情况下,你的字段是启用的(在html中)还是禁用的?如果您正在使用脚本手动启用字段,那么这将为您提供一个很好的开始搜索的位置。查找和禁用页面上的每个控件并不是偶然发生的事情,尤其是偶然发生的。页面非常大,非常复杂,一半字段开始禁用,另一半字段启用。但是随着页面中的Ajax点击量的增加,一切都可能发生变化。你能解释为什么它在IE7和FF上工作得很好吗?将检查不可见的div,但我无法共享代码,抱歉,这是一个Intranet应用程序。输入是否已禁用(=变灰)或不可读取?我知道如何使用Java进行调试,但您是否有任何Eclipse插件来调试Javascript?抱歉。我是一名.net开发人员,所以我对eclipse的了解很少。一个简单的谷歌搜索发现了这些:和