我有这个文本框:
<%= Html.TextBox("EffectiveDate", Model.EffectiveDate.HasValue ? Model.EffectiveDate.Value.ToString("dd-MMM-yyyy") : "", new { @class = "economicTextBox", propertyName = "EffectiveDate", onchange = "parseAndSetDt(this); ", dataType = "Date" })%>
我需要JS验证帮助。如果用户拥有该权限,则可以输入任何日期。如果用户没有,则他们只能输入当前日期或将来的日期。
这是我拥有的控制器方法,如果用户有权限,可以获得。
[NoCache]
public ActionResult HasAdvanced()
{
if (Chatham.Web.UI.Extranet.SessionManager.DisplayUser.IsInRole("hasICAdvanced"))
{
return Json(
new
{
value = "true"
});
}
else{
return Json(
new
{
value = "false"
});
}
}
Js / JQuery会是什么样子?我太难过了。
谢谢!
答案 0 :(得分:0)
如果您使用jquery验证,请查看remote规则。
它最终可能看起来像这样:
$("#myform").validate({
rules: {
EffectiveDate: {
required: true,
remote: "HasAdvanced"
}
}
});
如果您不想使用现有框架,可以为这一个字段滚动自己的验证。
$("#EffectiveDate").blur(function(){
//or $.get
$.post("HasAdvanced", null, function(data){
//Handle the json data and update the field display a message, etc......
}, "json");
});
答案 1 :(得分:0)
作为旁注,您的HasAdvanced
方法可以大大简化:
return Json(
new { value =
Chatham.Web.UI.Extranet.SessionManager.DisplayUser.IsInRole("hasICAdvanced").ToString()
});