我相信這只是我的第二篇文章,所以在這裏。 我正在處理管理信用卡的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版本 –