jquery - 加载时不显眼的验证javascript错误 - $ jQval未定义

时间:2011-11-23 21:33:43

标签: javascript jquery asp.net-mvc-3 unobtrusive-javascript unobtrusive-validation

我在jquery 1.7中使用它。我一直收到 - jQval is undefined错误。

这就是我加载脚本的方式。

$.ajax({
    url: "http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.js",
    dataType: "script",
    cache: true,
    success: callback
});

我也尝试将它直接加载到头部 - 同样的错误

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>

<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.js" type="text/javascript"></script>

3 个答案:

答案 0 :(得分:9)

只为其他人在搜索中发帖...

在头部加载文件时遇到错误的原因是jquery.validate.unobtrusive需要jquery.validate。这就是导致错误的原因。

(即仔细检查您是否在jquery.validate.unobtrusive之前成功包含了jquery.validate)

答案 1 :(得分:1)

<强>解决 级联ajax加载调用解决了它..它看起来像加载两个文件的时间问题

$.ajax({
       url: "http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js",
       dataType: "script",
       cache: true,
       success: function () {
                        $.ajax({
                             url: "http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.js",
                             dataType: "script",
                             cache: true,
                        });
                }
});

答案 2 :(得分:0)

以下3个脚本对我很有用:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js" type="text/javascript"></script>
<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.js" type="text/javascript"></script>

假设你有一个表格:

@using (Html.BeginForm())
{
    @Html.EditorFor(x => x.Foo)
    @Html.ValidationMessageFor(x => x.Foo)
    <button type="submit">OK</button>
}

键入视图模型:

public class MyViewModel
{
    [Required]
    public string Foo { get; set; }
}