我有一个需要验证的表单。我使用jQuery验证。我有问题显示错误消息。这是我的javascript代码:jQuery验证不显示错误信息
$(function() {
$("#submission-form").validate({
rules: {
WorkOrderId: "required",
ActivityId: "required"
},
messages: {
WorkOrderId: "Please choose WO",
ActivityId: "Please choose activity"
}
});
});
下面是我的html:
@using (Html.BeginForm("Create", "Submissions", FormMethod.Post , new { id = "submission-form" })) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>WorkOrderSubmission</legend>
<div class="editor-label">
@Html.LabelFor(model => model.WorkOrderId, "WorkOrder")
</div>
<div class="editor-field">
@Html.DropDownList("WorkOrderId", (SelectList)ViewBag.WorkOrders, "", new { @data_rule_required="true", @data_msg_required="The Workorder field is required." })
@Html.ValidationMessageFor(model => model.WorkOrderId)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.ActivityId, "Activity")
</div>
<div class="editor-field">
@Html.DropDownList("ActivityId", (SelectList)ViewBag.Activities, "", new { @data_rule_required="true", @data_msg_required="The Activity field is required." })
@Html.ValidationMessageFor(model => model.ActivityId)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
当我点击提交,我可以看到类加入元素,但不显示错误消息。 之前提交:
<select data-msg-required="The Workorder field is required." data-rule-required="true" id="WorkOrderId" name="WorkOrderId" aria-required="true">
<option value=""></option>
<option value="1">WO000001 - 001</option>
<option value="2">WO000002 - 001</option>
</select>
提交后:
<select data-msg-required="The Workorder field is required." data-rule-required="true" id="WorkOrderId" name="WorkOrderId" aria-required="true" class="input-validation-error" aria-describedby="WorkOrderId-error" aria-invalid="true">
<option value=""></option>
<option value="1">WO000001 - 001</option>
<option value="2">WO000002 - 001</option>
</select>
如何显示错误消息?
生成的HTML:
<div class="editor-field">
<select data-msg-required="The Workorder field is required." data-rule-required="true" id="WorkOrderId" name="WorkOrderId"><option value=""></option>
<option value="1">WO000001 - 001</option>
<option value="2">WO000002 - 001</option>
</select>
<span class="field-validation-valid" data-valmsg-for="WorkOrderId" data-valmsg-replace="true"></span>
</div>
<div class="editor-label">
<label for="ActivityId">Activity</label>
</div>
<div class="editor-field">
<select data-msg-required="The Activity field is required." data-rule-required="true" id="ActivityId" name="ActivityId">
<option value=""></option>
<option value="1">Activity 1</option>
<option value="22">Activity 22</option>
</select>
<span class="field-validation-valid" data-valmsg-for="ActivityId" data-valmsg-replace="true"></span>
</div>
我有标签data-msg-required="The Workorder field is required." data-rule-required="true"
,但我无法看到错误消息。
处理开箱即用(:
,最后加入脚本部分脚本代码你的脚本是不必要的)? –
它实际上显示了data-fule-required和data-msg-required属性,但它没有显示错误消息。 – Eric
'data-rule-required'和'data-msg-required'完全不涉及不显眼的客户端验证 - 它们只是您自己手动添加的任意html属性。在你的视图中添加'[Required]'属性到你的'WorkOrderId'和'ActivityId'属性并包含'jquery.validatate.unobrusive.js',它将在你的脚本中正常工作(并且删除这些属性) –