【问题标题】:Error validating form with jQuery使用 jQuery 验证表单时出错
【发布时间】:2013-02-11 22:15:41
【问题描述】:

我在尝试验证我的表单时收到以下错误:

'this.0.form' is null or not an object

我正在使用最新的 jQuery 和 jQuery.Validate,以及 jQuery.Validate.Unobtrusive(通过 NuGet)。

这里是代码。错误来自哪里?

@model URIntake.IntakeFormViewModel

@{
    ViewBag.Title = "Claim Information";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<div id="SubmissionForm">
@using (Html.BeginForm("Save", "UrIntake", FormMethod.Post, new { id = "UrIntakeForm"}))
{
    @Html.TextBoxFor(x => x.FormSubmitter.LastName)
    @Html.TextBoxFor(x => x.FormSubmitter.FirstName)

    <div id="SubmissionButtons" class="right">
        <input type="button" onclick="SubmitForm()" value="Submit" />
        <input type="button" onclick="CancelForm()" value="Cancel" />
    </div>
}
</div>


<script type="text/javascript">
    function CancelForm() {
        document.location = "/";
    }

    function SubmitForm() {
        $("UrIntakeForm").valid();
     }
.
.
.

【问题讨论】:

    标签: jquery asp.net-mvc jquery-validate unobtrusive-validation


    【解决方案1】:

    表单的 jQuery 选择器省略了 # 符号。 jQuery ID selector 应该包含 #,如下所示:

    function SubmitForm() {
        $("#UrIntakeForm").valid(); // "#UrIntakeForm" instead of "UrIntakeForm"
     }
    

    否则,您将 valid() 方法应用于空的 jQuery 对象,这会导致您指定的错误。

    【讨论】:

    • 呃!感谢您额外的一双眼睛!
    【解决方案2】:

    你的 jQuery 选择器错误

       function SubmitForm() {
            $("#UrIntakeForm").valid();
         }
    

    向选择器添加一个哈希 (#) 以将其标识为 id

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      相关资源
      最近更新 更多