我有一個需要驗證的表單。我使用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',它將在你的腳本中正常工作(並且刪除這些屬性) –