2

我正在开发一个 asp.net mvc 3 应用程序,但我无法让我的不显眼的 JS 验证正常工作。我问了非常相似的问题,但由于我没有得到任何答案,但认为我设法更好地定义了我的问题,所以我现在写了这个问题。

在寻找如何让客户端验证正常工作的答案时,我看到提交按钮的单击事件必须附加一些代码,这将启动验证过程。我不是 100% 肯定是这样,这实际上是我的问题,但如果我是正确的,你能帮我添加我需要添加的 JS,以便可以触发验证过程。

这是我的表格:

@using (Html.BeginForm("RecieveDataFromDocument", "Forms", FormMethod.Post))
{
    @Html.ValidationSummary(true)
    <table border="1">
        <colgroup>
            <col span="1" style="width: 10%;" />
            <col span="1" style="width: 40%;" />
            <col span="1" style="width: 25%;" />
            <col span="1" style="width: 25%;" />
        </colgroup>
        @Html.Partial("_PartialHeader", Model)
        @Html.Partial("_PartialDrawing", Model)
        @Html.Partial("_PartialBody", Model)
        @Html.Partial("_PartialFooter", Model)
    </table>
    if (ViewBag.Status == 1)
    {
        <button type="submit" id="submitDocument">Save</button>   
    }
    else
    { 
        @Html.ActionLink("Back", "Index")
    }
}

在同一个视图的底部,我有这个 JS:

<div>
<script type="text/javascript">
    $(document).ready(function () {
        $('#submitDocument').click(function () {
            window.alert('Hi');
            var test = ($("form").valid());
            window.alert('bye');
        })
    });
</script>
</div>

从我测试的内容到现在,我可以看到该Hi消息,但即使我评论它,我也永远不会收到bye. 所以任何帮助将不胜感激。

附言

我的_Layout页面中包含了这个:

<script src="@Url.Content("~/Scripts/jquery-1.8.3.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery-ui-1.10.3.custom.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/plugins/jqGrid/jquery-ui-1.8.16.custom.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/PageHelpers/jqDateTimePicker.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/plugins/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/plugins/jquery.validate.js")" type="text/javascript"></script>

我试图明确包括那些:

 <script src="@Url.Content("~/Scripts/plugins/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
 <script src="@Url.Content("~/Scripts/plugins/jquery.validate.js")" type="text/javascript"></script>

在我看来。因此,使用此设置它不起作用。

4

3 回答 3

2

您需要在页面上包含 jQuery 和 jQuery Validate 插件脚本。

如果您还包括 ASP.Net MVC 不显眼的验证脚本,一切都会自动发生。

编辑:您需要在 jQuery Validate之后包含不显眼的验证脚本,否则自动设置将不起作用。

于 2013-05-21T14:33:21.610 回答
1
<div>
<script type="text/javascript">
$(document).ready(function () {
    $('#submitDocument').click(function () {
        window.alert('Hi');
        var test = ($("#Forms").valid()); //Here code modified.
        window.alert('bye');
    })
});

于 2013-05-21T14:13:32.700 回答
1

@SLaks 是对的,在页面的 head 部分包含必要的 js 文件,如果出现问题,请使用浏览器(IE、Chrome 或 Safari)中包含的开发人员工具检查 js 控制台。

如果您想为表单使用 ID,请将打开表单命令更改为

@using (Html.BeginForm("RecieveDataFromDocument", "Forms", FormMethod.Post)) {

}

并将方法 valid() 更正为 validate()

于 2013-05-21T14:40:17.873 回答