w3c验证问题

时间:2011-06-26 14:45:57

标签: asp.net markup w3c w3c-validation

很困惑,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>

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

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

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

    看起来有点奇怪,你不能直接在表单标签中放入一个输入标签,但是...肯定是表单标签的一点,包含输入标签?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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>

在所有可能性中,这很可能是一个错误。