none
发现Visual Web Developer的bug? RRS feed

  • 问题

  • 我在使用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?

    2007年11月26日 14:49

答案

  • 我在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使用智能感知,非常值得尝试。

    2007年11月28日 9:29
    版主

全部回复

  • 这个你可以不用管的。

    IDE显示的提示是关于W3C的一系列标准测试的结果,并不是说不能正常工作。

    2007年11月27日 2:32
    版主
  •  Shiny Zhu 写:

    这个你可以不用管的。

    IDE显示的提示是关于W3C的一系列标准测试的结果,并不是说不能正常工作。

    谢谢您的解答!那是不是说W3C标准中,“password”控件是不支持“onchange”事件呢?“password”也是文本,“text”可以用“onchange”事件,但“password”就不可以,不明白W3C为什么这样规定。

    2007年11月27日 4:33
  • 补充说明一下,输入“<input type="text" onchange="check()" ...>”不会报错,输入“<input type="password" onchange="check()" ...>”IDE就会报主题所说的错误。也就是说当type="password"时,IDE提示onchange事件不可用。
    2007年11月27日 4:48
  • 我在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使用智能感知,非常值得尝试。

    2007年11月28日 9:29
    版主
  • 回答得很好,谢谢了!又学到东西了,呵呵。

    2007年11月28日 11:53