0
我有一個表單使用行來接收用戶輸入。用戶可以點擊一個鏈接來獲得一個新的行。該鏈接調用一個函數,該函數在創建新行和單元格後創建一個新元素。當元素被創建時,調用另一個函數,當需要時,使用AJAX接收SELECT選項。這工作正常。selectedIndex未設置,除非顯示警告
當新元素完成後,會調用一個函數將選定元素值從前一行復制到新行中。但是,發生的事情超越了我。
將前一行的INPUT值複製到新行中。 複製SELECT的索引只有在設置new_element.selectedIndex之前顯示警告框時才起作用。
功能:
function CopyPreviousValue(new_element, old_element_name, new_id) {
if (new_id > 1) {
var old_element = document.getElementsByName(old_element_name)[0];
switch (old_element.tagName) {
case "SELECT":
//alert("[old_element.selectedIndex] "+old_element.selectedIndex);
new_element.selectedIndex = old_element.selectedIndex;
if (old_element.selectedIndex != -1) new_element.disabled = false;
break;
case "INPUT":
new_element.value = old_element.value;
if (old_element.value != "") new_element.disabled = false;
break;
}
}
}
我什麼都看不到壯觀這裏.. 可有人請賜教一下爲什麼出現這種情況,如何解決這一問題?
感謝Ralph..Because我使用的是相同的selectedIndex多次,我改變了我的代碼,包括: '變種N = old_element.selectedIndex;' 而在這個地方你的建議: 'new_element.options [n]的.setAttribute( '選擇', '選擇');' 在JS錯誤控制檯,我現在看到: '錯誤:類型錯誤:new_element.options [n]是undefined' 因此,由於n被正確定義(我使用警報進行了檢查),所以這確實是因爲o new_element ptions沒有完全呈現。 我在一行中有多個選擇元素..有沒有辦法等待這種情況發生而不使用警報? – Storm49152
好吧,所以我發現這是因爲AJAX是異步的,並且不推薦的方法來解決這個問題是使他.open方法同步..我現在試圖以推薦的方式解決它..供參考: [鏈接](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call) – Storm49152