2

有谁知道以下标记验证错误的解决方案?我不确定这是 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)">

验证错误与 ColdFusion 自动分配给 的“名称”属性相关联。错误消息如下:

没有属性“名称”

您使用的文档类型不支持该元素的该属性。此错误通常是由于不正确使用“严格”文档类型引起的

我假设 AJAX 需要“名称”属性才能正常工作。如何解决此验证错误?我必须更改我的文档类型吗?

4

2 回答 2

1

您不必在表单上具有 name 属性以使 AJAX 正常工作(包括任何 ColdFusion 生成的 AJAX)。以下是来自cfform 元素的 name 属性的相关信息:

在 HTML 格式中,如果省略该属性并指定 id 属性,ColdFusion 不会在发送给浏览器的 HTML 中包含 name 属性;此行为允许您使用 cfform 标记创建符合 XHTML 的表单。如果省略 name 属性和 id 属性,ColdFusion 会生成一个格式为 CFForm_n 的名称,其中 n 是一个数字,它按顺序分配给页面上的表单。

简短的回答:保留一个 id,删除名称属性,您的页面将验证。不要忘记 id 在页面中的所有元素中必须是唯一的。

于 2010-03-05T13:23:47.630 回答
0

我认为这意味着表单标签名称:

<cfform class="SearchForm" id="SearchForm" action="" name="SearchForm">
于 2010-03-05T13:12:14.603 回答