验证HTML文本框

时间:2011-02-17 20:17:24

标签: jquery html ajax validation html-helper

我有这个文本框:

<%= 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会是什么样子?我太难过了。

谢谢!

2 个答案:

答案 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() 
    });