我在做一個web應用一些維護編碼和我得到的形式的JavaScript錯誤:「[的ElementName]有沒有屬性」的代碼JavaScript錯誤:[的ElementName]有沒有屬性
部分是通過AJAX調用即時生成,該AJAX調用改變頁面的一部分的innerHTML,在完成之後,我需要將一段數據從隱藏的輸入字段複製到可見的輸入字段。 所以我們的目標字段:<input id="dest" name="dest" value="0">
和源領域:<input id="source" name="source" value="1">
現在,當阿賈克斯運行它會覆蓋源是在div的innerHTML,所以源字段現在讀取:<input id="source" name="source" value="2">
確定後的JavaScript行復制阿賈克斯數據的InnerHtml下一行是: document.getElementById('dest').value = document.getElementById('source').value;
我得到以下錯誤:Error: document.getElementById("source") has no properties
(我也嘗試過document.formname.source
和document.formname.dest
和同樣的問題)
我錯過了什麼?
注1:頁面已完全加載且存在元素。 ajax調用只發生在用戶操作之後,並替換元素所在的html部分。
注意2:至於不使用innerHTML,這是代碼庫是如何給我的,爲了刪除它,我會需要重寫所有的ajax調用,這不在當前維護週期的範圍內。注意3:innerHTML用新數據更新,一個包含數據和格式的整個表正在被複制,我試圖在這個大塊的末尾添加一個布爾值,而不是創建一個全新的ajax調用一個布爾值。它看起來就是我將不得不做的......因爲我在最後的黑客,然後複製方法不起作用。
額外的雙眼FTW。
是的,我有一對夫婦的傢伙在這裏工作看看,他們發現我簡單的打字錯誤...我發誓,我有那些開始與正確的,但嘿,我們生活和學習...
謝謝爲幫助傢伙。
你可以發佈一個小的,完全正常的工作例如它複製你的問題? – 2008-09-26 18:05:39
一種方式通過AJAX調用修改調試網頁是在瀏覽器中做一個全選,複製並粘貼到的東西,瞭解HTML(我在設計模式中使用Dreamweaver中新的空白頁)。這會給你最終的HTML。 FireBug等工具也爲您提供這種能力。 – 2008-09-26 18:17:44
用於Firefox的Web開發人員工具欄也可讓您從「查看源代碼」菜單項中查看生成的源代碼。 – 2008-09-26 18:25:07