从jquery验证和淘汰赛中失去理智

时间:2011-06-04 00:00:22

标签: json asp.net-mvc-3 jquery-validate knockout.js

我一直试图这样做几个月,几个月,几个月,和 个月。而且我真的想要让Knockout为我工作而泪流满面。

我的帖子可追溯到去年试图做到这一点。一世 只是无法通过knockout和asp.net进行验证 MVC。

如果我放入$.validator.unobtrusive.parse("#__frmAspect");行,我 获得验证,但它不遵守提交处理程序。如果我 拿出来,它服从提交处理程序,但它没有得到任何 验证。

这是我的代码 - 全部。 (我认为)

主视图

http://pastie.org/2016031

编辑器视图

http://pastie.org/2016043

查看模型

http://pastie.org/2016045

控制器和型号装订器

http://pastie.org/2016052

Html输出

http://pastie.org/2016100

HtmlTags类

http://pastie.org/2016107

助手

http://pastie.org/2016111

我已经坚持了8个月。任何人都可以 请帮我?我想要的只是将数据提交回服务器。一世 不想要ajax,我不想要回调。我不想要任何幻想。 我只是想在适当的时候将我的JSON模型发送回服务器 客户端验证,让它获取数据。这就是我想要的。我做 不想使用$.ajax方法。我有理由为什么要这样做 就这样,他们与这个问题无关。

对RP Niemeyer的回应

是的,那真有效!!!!!!!! 哦,天啊。我欠你的话,过去8个月 我生命中的。我想寄给你一块以原始卡路里闷死的芝士蛋糕 品味和互联网。

我觉得我可以从这个问题多么沮丧中打出屏幕 让我。如果这个问题听起来粗鲁,我很抱歉,但没有问题 互联网我见过这种事。我相信任何其他开发者 可以理解似乎没有的问题的挫败感 有一个答案。

我不知道你是怎么得出这个结论的,我不明白 究其原因。

我尝试使用对象实例化视图模型(其中 视图模型不是它自己的对象,而是另一个对象的实例) 它不起作用。换句话说,如果我这样做..

var aspect = function () { 
  this.Id = ko.observable(); 
 // other variables, using ';' and 'this' keyword 
 this.Save = function() { 
   alert('We got to the save function'); 
 } 
} 

var viewModel = new aspect(); 
ko.applyBindings(viewModel, $("#__frmAspect")[0]); 
// attach the jquery unobtrusive validator 
$.validator.unobtrusive.parse("#__frmAspect"); 
// bind the submit handler to unobtrusive validation. 
$("#__frmAspect").data("validator").settings.submitHandler = 
viewModel.Save; 

这种方法不起作用。 我可以打扰你向我解释一下有什么不同,为什么?我是 完全迷失了。

1 个答案:

答案 0 :(得分:14)

我认为问题在于,不显眼的库已经在表单上设置了验证,因此您实际上需要进入并设置submitHandler,如:

// attach the jquery unobtrusive validator
$.validator.unobtrusive.parse("#__frmAspect");

// bind the submit handler to unobtrusive validation.
$("#__frmAspect").data("validator").settings.submitHandler = viewModel.Save;

http://jsfiddle.net/rniemeyer/V8MhG/