为什么部分视图中的表单未被jquery验证?

时间:2015-02-12 17:34:51

标签: javascript c# jquery asp.net-mvc-3 jquery-validate

我会尝试将代码保持在最低限度。 在我使用c#的MVC3应用程序中,我在局部视图中有一个表单,在主视图中有一个提交按钮。我在部分视图中使用的模型属性上有[required]属性,并且在相关的javascript文件中设置了规则。 但是当用户a没有在表单中输入任何数据时,不执行验证并继续应用程序。 我认为以下步骤是正确的。 我在主视图中引用了Javascript文件。 表单ID在此javascript文件中引用,以及主视图中提交输入的输入ID。

模型属性示例:

   [Required]
    [ScaffoldColumn(true)]
    [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
    [DataType(DataType.Date)]
    [Display(Name = "Expected Return Date to Customer")]
    public DateTime? ExpectedReturnedToCustomer { get; set; }

部分视图中的表单标记:

  <form id="multipleenroutetoltslab" method="post"

通过@ {Html.RenderPartial();}

调用部分视图

用于提交的输入标记。

   <input type="submit" style="width:100%;" class="styledbutton" id="MultiSubBtn" value="Submit" />

主视图中的Javascript文件引用(包的一部分):

 .Add("~/Scripts/CalibrationViewer/MultipleEnRouteToLtsLab.js")

Javascript文件:

  $(document).ready(function () {

$('#MultiSubBtn').click(function () {

    $('#multipleenroutetoltslab').validate({
        errorClass: 'field-validation-error',
        errorPlacement: function (error, element) { //place the error method after the date picker component
            var trigger = element.next('.ui-datepicker-trigger');
            error.insertAfter(trigger.length > 0 ? trigger : element);
        },
        rules: {
            SentBy: {
                required: true,
                maxlength: 255
            },
            DateSentToLtsLab: {
                required: true,
                dateFormat: true
            },
            ExpectedReturnedToCustomer: {
                required: true,
                dateFormat: true
            }
        },

视图部分视图:

  @model EnRouteToLts_RecByLts

  <form id="multipleenroutetoltslab" method="post">
  <p>
    @Html.LabelFor(m => m.SentBy)

        @Html.TextBoxFor(M => M.SentBy, new { disabled = "disabled", @readonly = "readonly" })
</p>
<p>
    @Html.LabelFor(m => m.DateSentToLtsLab)

          @Html.TextBox("DateSentToLtsLab", Model.DateSentToLtsLab.HasValue ? Model.DateSentToLtsLab.Value.ToShortDateString() : DateTime.Now.ToShortDateString(), new { disabled = "disabled", @readonly = "readonly" })
</p>
<p>
    @Html.LabelFor(m => m.ExpectedReturnedToCustomer)
    @Html.TextBox("ExpectedReturnedToCustomer", Model.ExpectedReturnedToCustomer.HasValue ? Model.ExpectedReturnedToCustomer.Value.ToShortDateString() : null, new { @class = "date-picker" })
  </p>      
 </form>

如果需要,javascript文件还有更多代码。 我在$(&#39; #MultiSubBtn&#39;)之后发出警报。单击(function(){并且它被触发,因此正在访问文件但是没有应用规则。 另外应该注意的是,当数据以表格形式输入时,它会到达Post动作。

没有错误。

0 个答案:

没有答案