2

我一直在我的 mvc 3 项目(使用 RC1)中实现新的不显眼的 javascript。我已将 3 个必需的脚本添加到“主”布局页面。一切运作良好。

但是,我有一个视图,我想使用一些普通的 jquery 验证来验证文本框。确切地说,我想检查一个条目是否存在,并且它是数字的。

所以在页面上我的js看起来像这样......

<script language="javascript" type="text/javascript">
$(document).ready(function(){
    $('#SomeForm').validate({
        errorClass: "field-validation-error",
        validClass: "field-validation-none",
        errorElement: "label",
        rules: {
            ItemCount: {
                required: true,
                number: true
            }
        },
        messages: {
            ItemCount: {
                required: "Please specify the number of items available",
                number: "Please specify a valid number"
            }
        }
    });
});

但是,这不起作用。因此,在我的主布局页面上,我注释掉了对 jquery.validate.unobtrusive.min.js 文件的引用,嘿,它很快就起作用了。

所以我想,一定是与不引人注目的点点滴滴有关,所以如果我把它关掉(我读到你可以)一切都会好起来的。

因此,在视图页面中,我添加了以下行

Html.EnableUnobtrusiveJavaScript(false);

但没有喜悦。我可以让它工作的唯一方法是删除对不显眼的 js 文件的引用。

当然不可能是这种情况。我一定是停止了对吧?

感谢:D

4

4 回答 4

6

jquery.validate.unobtrusive.min.js已经在与您自己的表单冲突的表单上注册了一个validate函数。validate因此,您可以尝试添加规则,而不是调用该函数。

$("#myinput").rules("add", {
    required: true,
    minlength: 2,
    messages: {
        required: "Required input",
        minlength: jQuery.format("Please, at least {0} characters are necessary")
    }
});
于 2010-11-24T19:02:02.900 回答
1

我认为新的 Unobtrusive jQUery Adapter 的设计方式是,您可以为整个或不启用它,您不能有条件地为特定视图启用/禁用它。

于 2010-11-24T21:28:20.987 回答
0

您使用的是哪个版本的 MVC3,它是 CTP、Beta 还是 RC?在 RC 中使用 Razor 对我来说效果很好。请从视图中发布代码。

于 2010-11-24T19:02:50.753 回答
0

尝试去 web.config 并找到这个:

  <appSettings>
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>

并将 UnobtrusiveJavaScriptEnabled 设置为 false。不过,它可能还有更多的钥匙。

于 2010-11-24T19:45:31.580 回答