【问题标题】:Required Validation Error Message is not getting displayed in jquery popup modal form必需的验证错误消息未以 jquery 弹出模式形式显示
【发布时间】:2013-03-10 12:43:53
【问题描述】:

我使用ComponentModel.DataAnnotations [必需] 属性来验证消息。该消息未显示在我的表单中。但是,正则表达式验证和范围验证工作正常。

在我的一个领域中,我同时使用了 [Required] 和 [RegualarExpression]。当我在文本框中输入错误时,会出现 RegualarExpression 验证消息,删除输入后,只有必需的验证消息。否则,不会出现必需的验证消息。

这是我的代码:

--模型类

    public class Email
    {
    [Required(ErrorMessage = "Email Address is required!")]
    [RegularExpression("^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]            {1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$", ErrorMessage = "Invalid Email Address.")]
    public virtual string EmailAddress { get; set; }


    [Required(AllowEmptyStrings = false, ErrorMessage = "First Name is Required")]
    public virtual string FirstName { get; set; }

    public virtual string MiddleName { get; set; }
    [Required(ErrorMessage = "Last Name is required!")]
    public virtual string LastName { get; set; }

    public virtual string Status { get; set; }
    }

--查看

    @{Html.EnableClientValidation();}

    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript">        </script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"     type="text/javascript"></script>
    @using (Html.BeginForm("CreateEmail", "LeaderBoard", FormMethod.Post, new { enctype =   "multipart/form-data", id = "create-email-dialog" }))
    {
    @Html.ValidationSummary(true)
    {
    <form>
    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="popTable">
    <tr>
        <td width="38%">
            First Name:
        </td>
        <td width="62%">
            <div class="editor-field">
                @Html.EditorFor(model => model.FirstName)
                @Html.ValidationMessageFor(model => model.FirstName)
            </div>
        </td>
    </tr>
    <tr>
        <td width="38%">
            Middle Name:
        </td>
        <td width="62%">
            <div class="editor-field">
                @Html.EditorFor(model => model.MiddleName)
                @Html.ValidationMessageFor(model => model.MiddleName)
            </div>
        </td>
    </tr>
    <tr>
        <td width="38%">
           Last Name:
        </td>
        <td width="62%">
            <div class="editor-field">
                @Html.EditorFor(model => model.LastName)
                @Html.ValidationMessageFor(model => model.LastName)
            </div>
        </td>
    </tr>
    <tr>
        <td width="38%">
            Email Address:
        </td>
        <td width="62%">
            <div class="errorMessage">
                @Html.EditorFor(model => model.EmailAddress)
                @Html.ValidationMessageFor(model => model.EmailAddress)
            </div>
        </td>
    </tr>
     <tr>
        <td width="38%">
             Status:
        </td>
        <td width="62%">
            <div class="editor-field">
                @Html.DropDownList("Status", ViewData["Status"] as SelectList)
            </div>
        </td>
    </tr>
    </table>    
    <input type="button" id="btnCreateEmail" value="Save" name="submit" class="btn" />
    <input type="button" value="Cancel" name="cancel" class="closeDialog" />
    </form>

    }
    }

--控制器

    [HttpGet]
    public ActionResult CreateEmail()
    {
        if (Request.IsAjaxRequest())
        {
                var list = new SelectList(new[]
                {
                    new{Id = "Active", Name = "Active"},
                    new{Id = "Inactive", Name = "Inactive"}
                },
                "Id", "Name", 1);

            ViewData["Status"] = list;
            return PartialView("_CreateEmail");
        }
        return RedirectToAction("Index");
    }

    [HttpPost]
    public ActionResult CreateEmail(Email model)
    {
        using (_emailRepository)
        {
            if (ModelState.IsValid)
            {
                _emailRepository.Create(model);
                return Json(new { success = true });
            }
            return RedirectToAction("Index");
        }
    }

【问题讨论】:

  • 你期待什么?您需要同时显示两条消息吗?
  • 我有点困惑?你在期待什么?您已将标题提到为 jquery 弹出模式,但从未在您的问题中使用它
  • 我需要显示 [Required] 错误验证消息。我希望这条消息会显示在名字和姓氏等字段中。显示的表单是jquery popup modal。
  • 您是说需要在页面加载本身上显示 [Required] 错误验证消息吗?
  • 没有。我希望在选项卡更改或表单提交时这样做

标签: asp.net-mvc-3 validation jquery-post


【解决方案1】:

在文档就绪函数中验证这些字段

       $( document ).ready( function ( e )
        {

$( "form" ).validate().element( "#FirstName" );


$( "form" ).validate().element( "#LastName" );
});

【讨论】:

    猜你喜欢
    • 2022-11-11
    • 2021-12-03
    • 1970-01-01
    • 2017-09-25
    • 2017-09-01
    • 1970-01-01
    • 2021-04-08
    • 2018-02-08
    相关资源
    最近更新 更多