jquery - 使用 BeginForm 帮助程序时启动客户端验证

标签 jquery asp.net-mvc-3 razor

我正在开发一个 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")
    }
}

在同一 View 的底部我有这个 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>

在我看来。所以这样的设置是行不通的。

最佳答案

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

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

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

关于jquery - 使用 BeginForm 帮助程序时启动客户端验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16671720/

相关文章:

javascript - 在假页面滚动上将更多数据加载到 html 模板,性能问题

javascript - 如何禁用重复图像的显示?

javascript - 如何使用连接操作查询添加日期选择器代码?

asp.net-mvc - 避免在业务层使用 SelectList (MVC 3)

jquery - 无法使编辑器模板工作

javascript - 使用 Angular 指令初始化多个 jQuery 插件

javascript - 链接到 View 子目录中的 javascript?

c# - 如何设置 htmlHelpers 项目,以便它为 mvc3 和 mvc4 生成两个 dll?

c# - Cookie 过期未按预期工作

c# - Blazor 布局 = null