【问题标题】:knockout kendo numerictextbox events淘汰剑道数字文本框事件
【发布时间】:2016-05-30 04:21:33
【问题描述】:

我的项目是 MVC 5;当我旋转剑道数字文本框时,我正在尝试更新计算文本。

<input class="numeric" data-bind="kendoNumericTextBox:price, events: { spin: change }" />
<hr />
Price: <strong data-bind="text: price"> </strong>
Items: <strong data-bind="text: price"> </strong>
Total: <strong data-bind="text: Total"> </strong>


var ViewModel = function () {
        var self = this;
        this.price = ko.observable(1);
        this.items = ko.observable(2);

        this.change = function() {
            alert("t");
        }
        self.Total = ko.computed(function () {
            return self.items() * parseInt("0" + self.price(), 10);
        });
    };
    ko.applyBindings(new ViewModel());

事件不起作用,当我在框外单击时,计算值起作用。这是举办活动的正确方式吗?

【问题讨论】:

  • 我不熟悉 kendoUI,但事件绑定语法应该是 event 而不是 events。不确定这是否是治疗方法。 knockoutjs.com/documentation/event-binding.html&lt;input class="numeric" data-bind="kendoNumericTextBox:price, event: { spin: change }" /&gt;
  • 嗯,一定是event,不是's{ spin: change }错了一个,应该是{ change:spin }。 spin 是 viewModel 中的一些功能。

标签: javascript asp.net-mvc knockout.js kendo-ui


【解决方案1】:

您希望指定您的绑定,例如:

data-bind="kendoNumericTextBox: { value: price, spin: updateOnSpin }"

在处理程序中,您可以直接更新可观察对象或触发小部件的更改事件:

   this.updateOnSpin = function(e) {
      e.sender.trigger("change");   
   }

这是一个小提琴示例:https://jsfiddle.net/rniemeyer/yh6vokqd/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 2014-07-27
    相关资源
    最近更新 更多