我正在使用 Visual Studio 2013 预览版中的默认站点模板,该模板默认集成了 Bootstrap(我已将其替换为 v3)
在一个表单中,POST 上的 Jquery validate 正确地突出显示了错误字段,除了我使用 Chosen 插件设置样式的下拉框。
我有问题的下拉列表的代码是:
@Html.DropDownListFor(
x => x.Job.State,
Model.States,
"Select a State", new { @class = "form-control chosen-select"})
@Html.ValidationMessageFor(model => model.Job.State)
这呈现如下:
<select class="input-validation-error form-control chosen-select" id="Job_State" name="Job.State" style="width: 50%; display: none;">
<option value="">Select a State</option>
<option value="ACT">ACT</option>
<option value="NSW">NSW</option>
<option value="QLD">QLD</option>
<option value="TAS">TAS</option>
<option value="NT">NT</option>
<option value="VIC">VIC</option>
<option value="WA">WA</option>
</select>
<div class="chosen-container chosen-container-single" style="width: 135px;" title="" id="Job_State_chosen"><a class="chosen-single" tabindex="-1"><span>Select a State</span><div><b></b></div>
</a>
<div class="chosen-drop">
<div class="chosen-search">
<input type="text" autocomplete="off"></div>
<ul class="chosen-results">
<li class="active-result result-selected" style="" data-option-array-index="0">Select a State</li>
<li class="active-result" style="" data-option-array-index="1">ACT</li>
<li class="active-result" style="" data-option-array-index="2">NSW</li>
<li class="active-result" style="" data-option-array-index="3">QLD</li>
<li class="active-result" style="" data-option-array-index="4">TAS</li>
<li class="active-result" style="" data-option-array-index="5">NT</li>
<li class="active-result" style="" data-option-array-index="6">VIC</li>
<li class="active-result" style="" data-option-array-index="7">WA</li>
</ul>
</div>
</div>
<span class="field-validation-error">State is required.</span>
注意 input-validation-error 类被添加到 Chosen 设置为 display:none 的元素中,因此很明显没有显示边框。
理想情况下,如果我可以将 input-validation-error 类添加到选择中的 div 中,那么这将解决我的问题,但我不知道该怎么做,所以非常欢迎任何帮助!
注意 - 我实际上不是在客户端验证之后,我只是在 POST 上使用验证。