【问题标题】:Markup validation error when using CFForm使用 CFForm 时的标记验证错误
【发布时间】:2010-03-05 13:09:13
【问题描述】:

有人知道以下标记验证错误的解决方案吗?我不确定这是 ColdFusion 中的问题还是我自己的代码中的问题,但以下 sn-p 的输出无法在 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 需要“名称”属性才能正常工作。如何解决此验证错误?我必须更改我的文档类型吗?

【问题讨论】:

    标签: coldfusion w3c-validation cfform name-attribute


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我认为是form标签名:

      <cfform class="SearchForm" id="SearchForm" action="" name="SearchForm">
      

      【讨论】:

      • Sergii,如果您查看我的来源,您会发现我没有包含“名称”属性。 name 属性由 CF 自动生成。这是否意味着无法正确验证此文档?
      • W3C 标准要求表单标签的名称属性。这就是您收到错误的原因。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多