Ошибка проверки разметки при использовании CFForm
Кто-нибудь знает решение следующей ошибки проверки разметки? Я не уверен, является ли это проблемой в ColdFusion или в моем собственном коде, но вывод следующего фрагмента не проходит корректную проверку в службе проверки разметки W3C:
Код
<cfform class="SearchForm" id="SearchForm" action="">
<fieldset>
<cfinput type="text" class="TNameField" name="TName" autosuggest="cfc:MyCFC.MyFunction({cfautosuggestvalue})">
<input type="button" class="TNameButton" value=" " />
</fieldset>
</cfform>
HTML-вывод
<form id="SearchForm" action="" method="post" class="SearchForm" onsubmit="return _CF_checkCFForm_1(this)">
Ошибка проверки связана с атрибутом "name", который ColdFusion автоматически назначает. Сообщение об ошибке следующее:
нет атрибута "имя"
используемый вами тип документа не поддерживает этот атрибут для этого элемента. Эта ошибка часто вызвана неправильным использованием типа документа "Строгий"
Я предполагаю, что AJAX требует, чтобы атрибут "name" работал правильно. Как устранить эту ошибку проверки? Нужно ли мне менять тип документа?
2 ответа
Для правильной работы AJAX необязательно иметь атрибут имени в форме (включая любой AJAX, созданный ColdFusion). Вот соответствующая информация из атрибута name элемента cfform:
В формате HTML, если этот атрибут не указан и указан атрибут id, ColdFusion не включает атрибут имени в HTML-код, отправляемый в браузер; Такое поведение позволяет использовать тег cfform для создания XHTML-совместимых форм. Если вы пропустите атрибут name и атрибут id, ColdFusion создаст имя в форме CFForm_n, где n - это номер, который присваивается последовательно формам на странице.
Краткий ответ: сохраните идентификатор, удалите имя, и ваша страница будет проверена. Не забывайте, что идентификатор должен быть уникальным для всех элементов на странице.
Я думаю, что это означает имя тега формы:
<cfform class="SearchForm" id="SearchForm" action="" name="SearchForm">