通常,我会为表单验证设置规则,如果它们没有通过,我会使用$this->load->view()
并再次加载表单。
Firefox和Opera一切正常。但是在所有其他浏览器中,当表单验证未通过并且表单再次加载时,文档将被取消格式化。我使用HTML Tidy检查我是否错过了关闭标签或其他东西,但一切都很好。
我还使用W3C HTML5 Validator检查了源代码。文件通过没有错误。然后,我运行表单验证并再次检查相同的源代码。这次验证器有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正在产生一些东西。
有没有人可以提供帮助?
答案 0 :(得分:2)
问题是我的应用程序中有两个带有BOM文件的UTF-8。
因此,如果表单验证返回false并且重新加载视图,则在EF BB BF
导致这些错误之前,在文档的开头添加了字节集<!DOCTYPE html>
。
所以我将两个文件保存为UTF-8,没有BOM编码,现在一切正常。