【问题标题】:Knockout validation inside Bootstrap ModalBootstrap Modal 中的淘汰赛验证
【发布时间】:2013-11-19 20:26:54
【问题描述】:

在我看来;我有一个简单的文本框,如下所示。

<input type="text" data-bind="value: vm().dummyValidationTest">

在视图模型中,我将 observable 定义为

dummyValidationTest = ko.observable().extend({ required: true });

最后,我将绑定应用为

 ko.applyBindingsWithValidation(vm);

当文本框位于主窗体上时,此验证效果很好;但是,只要我在 Bootstrap Modal 中移动文本框,定义如下验证就不起作用。

 <div class="modal" id="startNewApp-modal">

任何想法为什么验证在模态窗口中不起作用?

基本页面和模式都定义在同一个视图中。

编辑:请参阅下面的 jsfiddle 示例

  1. 无模式,验证工作:http://jsfiddle.net/athekdi/y53V2/

  2. 使用模式,验证不起作用:http://jsfiddle.net/athekdi/6W5xH/1/

【问题讨论】:

  • 你是如何显示模态的?
  • 这是验证工作时没有模式的 jsfiddle:jsfiddle.net/athekdi/y53V2;这是带有模态的jsfiddle并且验证不起作用:jsfiddle.net/athekdi/6W5xH/1
  • 如果您正确引用了验证插件,您的示例运行良好:jsfiddle.net/35MDq。所以首先你应该引用 KO,然后才是验证插件。
  • 在我的应用程序代码中,我在 knockout-2.3.0.js 之后确实有 knockout.validation.js;它仍然无法正常工作。

标签: twitter-bootstrap knockout.js modal-dialog knockout-validation


【解决方案1】:

您需要在 KO 之后移动 validation library reference,因为它依赖于该库

http://jsfiddle.net/6W5xH/2/

【讨论】:

  • 在我的应用程序代码中,我在 knockout-2.3.0.js 之后确实有 knockout.validation.js;它仍然无法正常工作。
  • 您的 Fiddle 可以正常工作,因此您的应用代码必须与 fiddle 代码不同
  • 如果是图书馆参考顺序问题;怎么会在这里工作jsfiddle.net/athekdi/y53V2 在 KO 之前引用了验证库
  • 因为你在那个版本中使用了 JSfiddles 版本的 KO 并且它在外部版本之前加载
猜你喜欢
  • 2012-02-18
  • 2011-08-09
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
  • 2012-12-05
  • 2012-03-08
相关资源
最近更新 更多