我正在使用ASP.NET MVC4
和jQuery Validate
和jQuery Validate unobtrusive
。遠程操作方法沒有使用jQuery驗證驗證
我在窗體上有各種元素,但我只需要驗證一個元素。其他元素不需要需要驗證。基本上會發生什麼是我有一個接受一個數字的文本框和一個按鈕(不是來提交表格),它接受這個texbox中的數字,並進行遠程調用以檢查數字是否存在,如果不存在,那麼它必須顯示一條錯誤消息。
我的看法代碼:
<td class="edit-label">Change Control ID/Incident Number: <span class="required">**</span></td>
<td>
@Html.TextBoxFor(x => x.ChangeIncidentNumber)
<button id="verifyButton" type="button">Verify</button>
@Html.ValidationMessageFor(x => x.ChangeIncidentNumber)
</td>
我的視圖模型:
public class SearchServerViewModel
{
// Partial view model
public string ChangeIncidentNumber { get; set; }
}
我的HTML輸出的文本框:
<td class="edit-label">Change Control ID/Incident Number: <span class="required">**</span></td>
<td>
<input data-val="true" data-val-required="Required" id="ChangeIncidentNumber" name="ChangeIncidentNumber" type="text" value="792952" />
<button id="verifyButton" type="button">Verify</button>
<span class="field-validation-valid" data-valmsg-for="ChangeIncidentNumber" data-valmsg-replace="true"></span>
</td>
我的jQuery代碼:
<script src="/Assets/JavaScripts/jquery-validate/jquery.validate.min.js"></script>
<script src="/Assets/JavaScripts/jquery-validate/jquery.validate.unobtrusive.min.js"></script>
<script>
$(document).ready(function() {
$("#ChangeIncidentNumber").validate({
rules: {
ChangeIncidentNumber: {
required: true,
remote: '/Server/ValidateChangeIncidentNumber'
}
},
messages: {
ChangeIncidentNumber: {
required: "Required",
remote: "custom message:"
}
}
});
$('#verifyButton').click(function() {
var isValid = $('#ChangeIncidentNumber').valid();
});
});
</script>
我的操作方法:
public ActionResult ValidateChangeIncidentNumber(string ChangeIncidentNumber)
{
// Do whatever needs to be done
return Json("Test error text", JsonRequestBehavior.AllowGet);
}
在我的web.config:
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
所需的部分作品,它如果文本框爲空,顯示所需的消息。但是如果有價值,它不會達到我的行動方法。不知道爲什麼?
你嘗試了** [發佈方法這裏提到](http://stackoverflow.com/a/15921594/2007801)**? – 2013-04-17 10:09:42