2010-11-09 50 views
0

我需要一個有效的方式來顯示我已經從一種形式的onsubmit功能收集的錯誤。這是我的錯誤收集功能:JavaScript動態錯誤顯示?

function checkForm(form) { 

var errors = ""; 

errors += checkName(form, form.name.value); 

errors += checkSex(form, form.sex.value); 

if(form.gender[0].checked || form.gender[1].checked) { 
     errors += checkGender(form, true); 
} else { 
    errors += checkGender(form, false); 
} 

errors += checkHeight(form, form.height.value); 

errors += checkSalary(form, form.salary.value); 

errors += checkCountry(form, form.birthCountry.value); 

if(errors) { 
     document.getElementById("errors").appendChild(document.createTextNode(errors)); 
    return false; 
} 

return true; 

} 

不幸的是,似乎createTextNode()不處理新行(\ n)或HTML。我怎麼能通過這個?或者還有其他更有效的解決方案嗎?

回答

1

在HTML中,一般換行和空格被忽略。要強制換行,您必須使用br標籤。您可以輕鬆地在錯誤字符串上運行替換,或者只是使函數添加這些標記而不是換行符。

errors.replace('\n', '<br />') 

然後,您可以只是它添加到元素的innerHTML

document.getElementById('errors').innerHTML += errors.replace('\n', '<br />'); 
+0

仍然沒有骰子。只有空格被註冊並顯示。 – NateTheGreatt 2010-11-09 22:07:34

+0

哦,愚蠢的我,當然一個文本節點是一個文本節點,不解析HTML。如果您想使用html,則需要將節點的「innerHTML」設置爲代碼。否則,你將不得不在每個包含單行的文本節點之間創建一個新的'br'元素。 – poke 2010-11-09 22:09:01

+0

啊!這工作。謝謝! – NateTheGreatt 2010-11-09 22:10:06