为什么不会jQuery验证工作?

时间:2016-03-01 15:41:49

标签: javascript jquery asp.net-mvc razor

我已经浏览了文档,无法弄清楚我哪里出错了。 jQuery Validate根本不会工作。在Chrome开发工具中,我没有任何错误或任何错误,所以我不确定我做错了什么。

我的观点遵循以下格式:

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "eventForm" })) {
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.EventName, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.EventName, new { htmlAttributes = new { @class = "form-control", name="eventName", id="eventName" } })
                @Html.ValidationMessageFor(model => model.EventName, "", new { @class = "text-danger" })
            </div>
        </div>
 }

<script src="~/scripts/jquery-1.10.2.min.js"></script>
<script src="~/scripts/jquery.datetimepicker.full.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script type="text/javascript">

    $('#eventForm').validate({
        rules: {
            eventName: {
                required: true
            }
        },
        messages: {
            eventName: "Event name is required"
        }
    });
</script>

我将nameid添加到我要验证的视图中的所有元素中。 我哪里可能出错?我没有错误或类似的东西,所以我不完全确定?我是否需要添加其他<script>

1 个答案:

答案 0 :(得分:2)

你必须在页面加载中触发这样的东西......就像这样......

$(document).ready(function(){
    $('#eventForm').validate({
        rules: {
            eventName: {
                required: true
            }
        },
        messages: {
            eventName: "Event name is required"
        }
    });
});