2013-04-14 75 views
0

通常,我設置了表單驗證規則,如果他們不通過我使用$this->load->view()並再次加載窗體。問題與CodeIgniter表單驗證

一切正常工作與Firefox和Opera。但在所有其他瀏覽器中,當表單驗證未通過並且表單再次加載時,文檔將變得無格式。我使用HTML Tidy來檢查是否錯過並關閉了標籤或其他東西,但一切正常。

我也使用W3C HTML5驗證器檢查了源代碼。該文件沒有錯誤通過。然後,我運行了表單驗證並再次檢查了相同的源代碼。驗證器此次遇到5個錯誤。

Line 2, Column 1: Non-space characters found without seeing a doctype first. Expected <!DOCTYPE html>. 
<!DOCTYPE html> 

Line 2, Column 1: Element head is missing a required instance of child element title. 
<!DOCTYPE html> 
Content model for element head: 
If the document is an iframe srcdoc document or if title information is available from a higher-level protocol: Zero or more elements of metadata content. 
Otherwise: One or more elements of metadata content, of which exactly one is a title element. 

Line 2, Column 16: Stray doctype. 
<!DOCTYPE html> 

Line 3, Column 19: Stray start tag html. 
<html lang="pt-br"> 

Line 3, Column 19: Cannot recover after last error. Any further errors will be ignored. 
<html lang="pt-br"> 

我知道在<!DOCTYPE html>之前有什麼東西可能會變壞。但我沒有任何變數。也許CI正在產生一些東西。

有沒有人可以幫忙?

+1

檢查部分中正確拼寫和關閉的代碼,HTML代碼的示例將對您有所幫助。 – David

+1

如果您的問題已解決,請將您的解決方案作爲答案發布並接受它(http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/ ) – ollo

+0

如果我可以發佈我的答案,我會的!這是我的第一個問題。人們關閉,編輯它,做任何他們想要的東西。我無法控制我的東西。現在我無法刪除它。我能夠完全控制它有什麼問題?答案是,我使用BOM配置文件UTF-8,然後將文件保存爲UTF-8,無BOM,現在一切正常。 – RGutter

回答

2

問題是我的應用程序中有兩個帶有BOM文件的UTF-8。 因此,如果表單驗證返回false並重新載入視圖,則會在文檔開始處添加字節集EF BB BF,之後<!DOCTYPE html>會導致這些錯誤。 因此,我將這兩個文件保存爲UTF-8而沒有BOM編碼,現在一切正常。