积极答复者
发现Visual Web Developer的bug?

问题
-
我在使用Visual Web Developer 2005 Express Edition编写一个html网页时,输入<input type="password" onchange="check()" ...>系统报错“Error 1 Validation (Internet Explorer 6): Attribute 'onchange' is not a valid attribute of element 'input'. ...”。但是我用浏览器浏览此网页没有错误,onchange事件正常工作。是password不支持onchange事件,还是Web Developer的一个bug呢?请高手指点一下。另外如果是password不支持onchange事情,可有事件代替onchange?
答案
-
我在VS2005里实际试验了,你提到的Validation (Internet Explorer 6): Attribute 'onchange' is not a valid attribute of element 'input'. ...”,这个检查是IDE对HTML源代码文档语法正确性的验证,目标架构是是IE6浏览器。
也就是说,IDE的验证机制认为在IE6的password输入框是不支持onchange这一javascript事件的,但实际上是可以正常运行的(这里面涉及到很著名的浏览器之争,具体的可以搜索一下,也可以搜索下Web标准这个关键字会得到更多信息)!
VS提供这一系列验证的目的是让我们编出的代码更适应目标架构,你可以通过菜单“Tools”》“Options”》“Text Editor”》“HTML”》“Validation”里更改设置,建议选择XHTML 1.0 Transitional,这样可以适合大部分当代主流浏览器。另外请参考MSDN中的Visual Web Developer 中的标记验证 说明:http://msdn2.microsoft.com/zh-cn/library/f940516c(VS.80).aspx
VS2005的HTML设计器有许多地方不尽人意,举个例子,假设你用了MasterPage,在一个引用MasterPage的页面里是不会有HTML头之类代码的,但IDE会提示你内容需要一个父容器。这些细节地方在VS2008里得到很大的提高,使用VS2008还可以对javascript使用智能感知,非常值得尝试。
全部回复
-
我在VS2005里实际试验了,你提到的Validation (Internet Explorer 6): Attribute 'onchange' is not a valid attribute of element 'input'. ...”,这个检查是IDE对HTML源代码文档语法正确性的验证,目标架构是是IE6浏览器。
也就是说,IDE的验证机制认为在IE6的password输入框是不支持onchange这一javascript事件的,但实际上是可以正常运行的(这里面涉及到很著名的浏览器之争,具体的可以搜索一下,也可以搜索下Web标准这个关键字会得到更多信息)!
VS提供这一系列验证的目的是让我们编出的代码更适应目标架构,你可以通过菜单“Tools”》“Options”》“Text Editor”》“HTML”》“Validation”里更改设置,建议选择XHTML 1.0 Transitional,这样可以适合大部分当代主流浏览器。另外请参考MSDN中的Visual Web Developer 中的标记验证 说明:http://msdn2.microsoft.com/zh-cn/library/f940516c(VS.80).aspx
VS2005的HTML设计器有许多地方不尽人意,举个例子,假设你用了MasterPage,在一个引用MasterPage的页面里是不会有HTML头之类代码的,但IDE会提示你内容需要一个父容器。这些细节地方在VS2008里得到很大的提高,使用VS2008还可以对javascript使用智能感知,非常值得尝试。