问题 从jquery验证和淘汰失去了我的思想


我一直试图这样做几个月,几个月,几个月,和 个月。而且我真的想要让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; 

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


3777
2018-06-04 00:00


起源

我没有查看所有代码,但我认为你需要添加return true;到方法的最后:submitHandler:function(){viewModel.Save();返回true; } - eulerfx
它甚至从未击中过那部分代码。我可以在那里发出警报来运行,它甚至都不会被解雇。 - Ciel


答案:


我认为问题在于,不显眼的库已经在表单上设置了验证,因此您实际上需要进入并设置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/


14
2018-06-04 01:55



是的,确实有效。我在Knockout论坛上回复了你的帖子,但我会在这里做出回应,这样你才能获得积分和积分。我要等几天,所以我可以为此添加一笔赏金并奖励你积分 - 因为这让我非常感动,以至于我认为你应该得到它来解决它。 - Ciel
如果你想回答,我已经用更多信息更新了我的问题。无论如何,我都会给你奖励积分。非常感谢你做的这些。我希望我明白你是怎么想出来的。 - Ciel
我尝试了最基本的样本,它仍然有效: jsfiddle.net/rniemeyer/DNgeJ。对于完整版代码,必须是其他内容。我将在KO论坛上与您合作解决这个问题。 - RP Niemeyer
正如所承诺的那样,我已经将奖金设定为100分,并且会在24小时内授予我奖励。再次感谢你所做的一切。 - Ciel