2

我一直在我的mvc 3项目(使用RC1)实施新的不显眼的JavaScript。 我已将3个必需的脚本添加到“主”布局页面。 一切正常。MVC 3无法关闭不显眼的JavaScript

但是我有一个视图,我想使用一些正常的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

回答

6

jquery.validate.unobtrusive.min.js已经被与自己发生冲突的形式注册一个validate功能。因此,您可以尝试adding rules,而不是拨打validate功能。

$("#myinput").rules("add", { 
    required: true, 
    minlength: 2, 
    messages: { 
     required: "Required input", 
     minlength: jQuery.format("Please, at least {0} characters are necessary") 
    } 
}); 
0

你是什么版本的MVC3是CTP,Beta还是RC?在使用Razor的RC中,它适用于我。请发布视图中的代码。

+0

这是RC,但达林斯提供了答案。感谢您的期待。 – 2010-11-24 19:29:40

0

尝试去web.config文件和寻找这样的:

并设置UnobtrusiveJavaScriptEnabled为false。虽然它可能有更多的键。

+1

他不想关闭所有东西,只是为了一个特定的视图。 – jgauffin 2010-11-24 20:17:05

+0

@jgauffin:你确定你编辑了正确的web.config吗? – gligoran 2011-03-29 18:55:22

1

我认为新的Unobtrusive jQUery适配器的设计方式是,您可以将其全部或全部启用,但无法为特定视图有条件地启用/禁用它。