我想做的是制作一个对话框,其中按钮是敲除viewModel的数据库,以便我可以根据表单上的各种条件启用或禁用这些按钮

但是,您在jQuery对话框中制作按钮的方式与正常情况有些不同。

有人有解决方案吗?

有帮助吗?

解决方案

  1. 确保自己应用 class 到对话框的按钮:

    $("#dialog").dialog({
        buttons: [{
            text: 'Ok',
            class: 'ok-button'
        }]
    });
    
  2. 抓住 button.ok-button 并应用 data-bind 属于它(visible 在这里,只是向您展示它有效)。这里, name 是我们视图模型的可观察属性:

    $("button.ok-button").attr("data-bind", "visible: name().length");
    
  3. 通常应用绑定:

    var model = { name: ko.observable('') };
    ko.applyBindings(model);
    

这是一个示例,该示例是对话框上的“确定”按钮 name (可观察)有一个长度 > 0: http://jsfiddle.net/9crfy/

其他提示

为了加上Andrew的答案,由于数据结合属性只是您可以添加到按钮的另一个属性,因此这也可以工作:

$("#dialog").dialog({
    buttons: [{
        text: 'Ok',
        'data-bind': 'visible: name().length'
    }]
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top