我相信这只是我的第二篇文章,所以在这里。 我正在处理管理信用卡的HTML表单。表单有一个javascript页面,可以在提交时完成所有的验证。 表单上的邮政编码字段具有查询数据库邮政编码的onblur操作,以填充城市/国家/地区字段。在数据库中,可以有多个位置设置为一个邮政编码,其中一个浮动div似乎让用户选择他们想要使用的地址。禁用的属性没有正确设置在IE浏览器中使用JavaScript
当它运行时,它首先禁止表格上的所有字段与此功能件:
for(f=0;f<document.forms.length;f++)
{
for(i=0;i<document.forms[f].elements.length;i++)
{
if (document.forms[f].elements[i].disabled==true)
keepDisabled += document.forms[f].name + document.forms[f].elements[i].name + "^";
document.forms[f].elements[i].disabled=true;
}
}
然后,当用户选择一个地址,它使所有的与这一块的字段:
for(f=0;f<document.forms.length;f++)
{
for(i=0;i<document.forms[f].elements.length;i++)
{
if (keepDisabled.indexOf("^"+document.forms[f].name+document.forms[f].elements[i].name+"^") == -1)
document.forms[f].elements[i].disbaled=true;
}
}
因此,对于keepDisabled变量中的任何元素,应该跳过disabled = true。奇怪的是,它在FireFox/Chrome中工作正常,但在IE中,它使得字段变为一半。禁用字段丢失灰色,输入/文本字段不能编辑,这仍然是好的,选择只在双击时激活。
document.forms[f].elements[i].prop("disabled", "disabled");
document.forms[f].elements[i].attribute("disabled, "disabled");
任何建议:
我也使用这些禁用代码试过吗?谢谢。
这当然不是'disbaled',但'disabled'? – adeneo
如果你拼写正确,它会工作:'document.forms [f] .elements [i] .disabled = true;'顺便说一句,你正在处理DOM节点,而'prop()'是一个jQuery方法或者至少*不是我在本地JavaScript中遇到的方法)。我不知道'attribute()'的起源(除非你的意思是'attr()',jQuery再次)。但jQuery方法和DOM方法是不可互换的。 –
你想jquery或javascript,你正在使用的jQuery和IE版本 –