【问题标题】:Using bootstrap popover with jquery validation and knockout使用带有 jquery 验证和淘汰赛的 bootstrap popover
【发布时间】:2012-09-13 15:14:50
【问题描述】:

我正在使用 Twitter Bootstrap 弹出框在 Knockout 驱动的表单上显示来自 jQuery 的验证错误。我已经让它显示弹出框很好,但如果我必须在弹出框打开时重新加载数据(例如在获取时),它会永远留在那里。

我创建了一个 jsFiddle 来演示。可以找到here

要显示问题,只需启动 Fiddle,点击“添加礼物”,然后点击“提交”(应该会弹出错误),然后点击“重新加载”...错误将保留。

我能做些什么来解决这个问题?

【问题讨论】:

    标签: twitter-bootstrap knockout.js jquery-validate


    【解决方案1】:

    只是在重新加载功能中隐藏弹出窗口会不会太简单了?

    self.reload = function() {
        $(".popover").hide();
        ......
    }
    

    http://jsfiddle.net/unklefolk/cmUtX/5/

    【讨论】:

    • 这样做的缺点是,如果页面上的其他地方有一个与验证无关的弹出窗口,它也会被关闭。我也不知道从“内存泄漏”的角度来看会做什么,因为您没有通过调用 popover 函数以“引导”方式关闭它。不过,我能做的可能就这些了……
    • 我同意这不是一个完美的解决方案,Brian。我今天早上有点乱。基本上,您似乎需要在重新加载后重新验证您的表单。在“重新加载”中重新填充 observableArray 后,我尝试添加一个 setTimeout 以重新验证表单,但这不起作用。我还尝试在淘汰模板中使用 afterRender 回调并获得有限的成功。你可以在jsfiddle.net/unklefolk/cmUtX/7看到结果你不再有你漂亮的弹出消息,它会在添加礼物后立即验证,但也许它会给你一些灵感!祝你好运!
    • 我接受这个作为答案,因为我找不到更好的答案,这会奏效。我最终放弃了这种方法,并决定使用 Knockout Validation 而不是 jQuery Validation。内存泄漏的观点让我太害怕了。
    猜你喜欢
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 2013-11-19
    • 2012-02-18
    • 2012-03-08
    • 2013-03-22
    • 1970-01-01
    • 2012-10-27
    相关资源
    最近更新 更多