我正在進行一些表單驗證,在這裏我通過for(elem in myform)循環遍歷我的表單中的元素,並根據必填字段列表檢查它並將背景顏色設置爲'粉紅色'如果必填字段沒有價值。設置style.backgroundColor關閉代碼
要將顏色重置爲默認值,我將該屬性在循環的開始處重新設置爲null。
它的工作原理完美無瑕,但出於某種奇怪的原因,它不會在循環後運行我的谷歌腳本調用。 (或者我試圖放在那裏的警報)
用了幾個小時,試圖找出註釋掉位和位的原因,並以此結束:如果我刪除顏色重置部分..谷歌腳本運行,一切正常運行除了現在已經完成的字段的顏色保持粉紅色)
if(thisEl.style.backgroundColor == "pink")
{
thisEl.style.backgroundColor = null;
}
我甚至嘗試註釋掉的實際值變化,只留下if語句和它仍然無法正常工作..不知怎的,訪問該特性使得阻止我在循環之後做任何事情。
解決方法(而非解決方法):我的一些對象沒有style屬性,並試圖訪問backgroundColor引發異常,所以我測試style屬性是否先存在if(thisEl .style!= null)
您是否嘗試用空字符串''「'而不是'null'重置樣式?另外,什麼循環代碼? – traktor53
@ Traktor53不,我沒有,因爲就像我說過,即使我註釋掉設置樣式的行,if語句本身也會導致同樣的問題。另外就像我在我的問題中說過的,我有一個for-in循環遍歷我的表單的每個元素,然後在我調用google腳本並將表單傳遞給我的電子表格之後進行驗證 – IForgotEverything
我建議創建一個最小測試這種情況下,讀者可以重現問題。您可能會發現,在代碼的開頭添加「use strict」(如果尚未存在的話)會生成更多有意義的錯誤消息。 – traktor53