Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“自动完成”属性未通过XHTML 1.0过渡验证,为什么?_Html_Xhtml - Fatal编程技术网

“自动完成”属性未通过XHTML 1.0过渡验证,为什么?

“自动完成”属性未通过XHTML 1.0过渡验证,为什么?,html,xhtml,Html,Xhtml,我正在尝试清理我的xhtml验证——我正在通过W3C验证程序运行我的页面。出于某些令人费解的原因,它没有传递带有autocomplete=“off”属性的输入字段: <input name="kwsearch" id="sli_search_1" type="text" autocomplete="off" onfocus="if(this.defaultValue==this.value) this.value='';" onblur="if(this.value

我正在尝试清理我的xhtml验证——我正在通过W3C验证程序运行我的页面。出于某些令人费解的原因,它没有传递带有autocomplete=“off”属性的输入字段:

<input name="kwsearch" id="sli_search_1" type="text" autocomplete="off" onfocus="if(this.defaultValue==this.value) this.value='';"
            onblur="if(this.value=='')this.value=this.defaultValue;" class="searchbox" value="Search" />

我正在使用此doctype:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

这是验证错误:

第410行第81列:没有“自动完成”属性

…li\u search\u 1“type=“text”autocomplete=“off”onfocus=“if(this.defaultValue==thi…”

我认为这对W3C来说没问题——但,也许它还处于“提交”阶段?


想法?

W3C链接是用于web表单的东西,而不是核心XHTML。可能可以为web表单引入额外的DTD并让页面进行验证。

自动完成是一种功能,因此如果需要,请使用HTML5文档类型声明。

web表单规范与HTML4/XHTML无关。遗憾的是,
自动编译删除将无法通过验证

我认为在关闭自动完成功能的情况下,实现有效HTML 4/XHTML的唯一方法是使用JavaScript在页面加载时添加属性。我知道这很糟糕,但我认为这是唯一的方法。

如果需要自动完成(浏览器确实支持),请尝试扩展doctype,如下面的XHTML 1.1所示:


我刚刚碰到了浏览器和标准之间令人恼火的冲突。我最终通过在页面上运行javascript来解决它,而不是等待
窗口。onLoad
$(document)。ready()
,将属性添加到类为“无浏览器自动完成”的所有元素中。然后我通过我的应用程序删除了
autocomplete=“off”
,并添加了这个类

显然,在不运行javascript的浏览器环境中,这将失败

我之所以在页面上而不是在dom就绪块中这样做,是因为如果您等待dom就绪,浏览器已经自动完成了它,至少在Firefox中是这样(我正在测试它)

这是我在应用程序布局中包含的一个javascript文件的开头:

//this needs to run BEFORE all of the loaded/ready events fire, that's why it's not in the dom.ready function
$(".no-browser-autocomplete").attr("autocomplete", "off");

$(function(){ 
  //dom ready
});

页面加载是否足够早,以至于浏览器还没有填写表单?我记得读过一篇关于动态添加
自动完成
的文章,不幸的是,我记不起结论是什么了。@Boldewyn该死的好问题!共识似乎是onDOMLoad,至少根据这一点:是的,Web Forms 2.0已经被合并了d转换成HTML5!或者如果您以
应用程序/xhtml+xml
(xhtml>)的形式发送,则根本不需要doctype!