验证HTML时出错:label元素的for属性必须引用表单控件

时间:2012-07-19 18:56:58

标签: html asp.net-mvc-3 html5 validation

我不知道为什么我在http://validator.w3.org/check检查我的网页时一直收到此错误 错误是:

Line 46, Column 68: The for attribute of the label element must refer to a form control. 
<label class="environment-label" for="environment_form">Environments:</label>

我相信我为label提供了外部表单的ID引用,为什么它一直在告诉我这个错误?

<div>
    <form id="environment_form" method="post">
        <div class="styled-select">
            <label class="environment-label" for="environment_form">Environments:</label>
            <select name="environment_dropdown" onchange="selectionChanged()">
                <option @(ViewData["selection"] == null || string.IsNullOrEmpty(ViewData["selection"].ToString()) ? "selected" : "")>select one</option>
                @foreach (string name in Model) { 
                    <option @(ViewData["selection"] != null && ViewData["selection"].Equals(name) ? "selected" : "")> 
                        @name
                    </option>
                }
            </select> 
        </div>
    </form>
</div>

1 个答案:

答案 0 :(得分:26)

你有这个:

for="environment_form"

它直接引用表格!但是“for”属性应该引用表单中的元素,在您的情况下应该引用select。因此,在您的选择中添加“id”属性并更改“for”,如下例所示:

<label class="environment-label" for="environment_dropdown">Environments:</label>
<select name="environment_dropdown" id="environment_dropdown" onchange="selectionChanged()">