我相信这只是我的第二篇文章,所以就这样吧。我正在开发一个管理信用卡的 HTML 表单。该表单有一个 javascript 页面,该页面在提交时执行所有验证等。表单上的邮政编码字段有一个 onblur 操作,可查询数据库中的邮政编码以填充城市/国家字段。在数据库中,可以为邮政编码设置多个位置,其中会出现一个浮动 div,让用户选择他们想要使用的地址。
当它运行时,它首先使用这个功能块禁用表单上的所有字段:
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");
有什么建议么?谢谢。