Проблемы с проверкой w3c - PullRequest
0 голосов
/ 26 июня 2011

Я в замешательстве, служба проверки 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)

Это ошибка или я сделал что-то не так ???

РЕДАКТИРОВАТЬ: Как указал Питер О ниже, я добавил отсутствующий тег div в мою разметку ...Сравнение этого с разметкой, которую использует валидатор, показывает, что этот div, хотя и присутствует в разметке, по-видимому, не стоит проверять ... так что вроде как меняется вопрос на ... почему он игнорирует этот div?...

Кажется немного странным, что вы не можете поместить тег ввода непосредственно в тег формы, хотя ... конечно, это точка тега формы, чтобы содержать теги ввода ??

Ответы [ 2 ]

1 голос
/ 26 июня 2011

Единственный способ избавиться от сообщения, следуя коду на вашей домашней странице, - это присвоить значение первому скрытому вводу

<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>

По всей вероятности, это наиболеескорее всего ошибка.

1 голос
/ 26 июня 2011

Элементы INPUT должны быть помещены в элемент DIV, например:

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