【问题标题】:w3c validation issuesw3c 验证问题
【发布时间】:2011-06-26 14:45:57
【问题描述】:

我很困惑,w3c 验证服务似乎在说 asp.net 不能合法地在页面上的表单标记内呈现隐藏字段,看看这个...

http://validator.w3.org/check?uri=http%3a%2f%2fmotcombegarage%2eco%2euk%2f

据我所知,这似乎是在说以下代码示例是无效标记 WTF !!!

<html>
<head> ... header stuff ... </head>
<body>
  <form method="post" action="" id="ctl01">
    <div class="aspNetHidden">
      <input type="hidden" name="ctl09_HiddenField" id="ctl09_HiddenField" value="" />
      <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTY1NzEyODQ1M2RkJPtW5VtaL7LPuSxnn1JM1yVnOeGAovb8b4b3KShHy4M=" />
      <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwKt17cxAr+s9MgFAqjXzJsHz7KyzLpZjYtTK89blY7GgKAElK/5syvVNn4h7rVehcQ=" />
    </div>
     ... other code ...
  </form>
</body>
</html>

如果代码实际上无效,这会给我带来 2 个问题:

  1. 此代码由 .net 框架生成,用于处理回发,因此编辑它可能是个问题
  2. 我不知道表单域的有效上下文应该是什么 (lolz)

这是一个错误还是我做错了什么???

编辑: 正如下面 Peter O 所指出的,我在我的标记中添加了缺少的 div 标记……将其与验证器使用的标记进行比较表明,这个 div 虽然存在于标记中,但显然不值得验证……所以这有点改变问题...为什么忽略那个 div ? ...

虽然您不能将输入标签直接放在表单标签中,这似乎有点奇怪......当然这就是表单标签的重点,包含输入标签??

【问题讨论】:

  • 为什么你的 在页面结束之前.. 整个页面肯定不能是一个表单?
  • 其实,我可能会来公司参观,我自己也不会太远。
  • 大声笑...我认为这与 asp.net 的工作方式有关...它仅支持每页一个表单...但我明白您的意思...我可能会移动表单标签大约有点......可能会在那里获得一些性能提升:)很高兴你喜欢它:)

标签: asp.net markup w3c w3c-validation


【解决方案1】:

按照您主页上的代码,我似乎摆脱该消息的唯一方法是为第一个隐藏的输入分配一个值

<div class="aspNetHidden">
<input type="hidden" name="ctl09_HiddenField" id="ctl09_HiddenField" value="toverton" />
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTY1NzEyODQ1M2RkJPtW5VtaL7LPuSxnn1JM1yVnOeGAovb8b4b3KShHy4M=" />
</div>

在所有可能的情况下,这很可能是一个错误。

【讨论】:

  • 你认为这是一个错误吗?我看不出这肯定是错的!
  • 我会说这是一个错误。
【解决方案2】:

INPUT 元素应放置在 DIV 元素中,如下所示:

<form ... >
  <div>
    <input type="hidden" ... />
    <input type="hidden" ... />
    <input type="hidden" ... />
  </div>
</form>

【讨论】:

  • 是的,根据他的页面。
  • 所以...我必须将所有字段都包含在一个元素中,该元素位于表单中,但不能直接位于表单本身上...奇怪吗? ...对我来说似乎验证不佳...当然??
猜你喜欢
  • 1970-01-01
  • 2023-03-23
  • 2014-12-03
  • 2015-06-29
  • 2012-07-14
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多