1

目标

仅当输入不同于零 (0)、零零 (00) 或空/空时才启用按钮。

问题

我不知道语法。

编码

HTML:

<input class="quantity float-left" name="productQuantity" maxlength="2"
       type="text" 
       data-bind="value: ProductLayout.itemQuantity, valueUpdate: 'afterkeydown'" 
/>
<span class="float-left">/@(Model["MeasureName"])(s)</span>
<button class="btn btn-add btn-mini float-right" 
        data-bind="enable: ProductLayout.itemQuantityValid">Adicionar</button>

JS:在下面的代码中,我说明了我想要做什么。发生什么了?该按钮如果存在则不启用&& null

function ProductLayoutViewModel() {
    var self = this;
    self.itemQuantity = ko.observable("");
    self.itemQuantityValid = ko.computed(function () {
        return self.itemQuantity() != "0" && null;
    }, this);
};
4

2 回答 2

1

请看看这个小提琴

看法 :

<input class="quantity float-left" name="productQuantity" maxlength="2" type="text" 
       data-bind="value: itemQuantity, valueUpdate: 'afterkeydown'" />

<span class="float-left">/@(Model["MeasureName"])(s)</span>

<button class="btn btn-add btn-mini float-right"
        data-bind="enable: itemQuantityValid">Adicionar</button>

视图模型:

function ProductLayoutViewModel() {
    var self = this;
    self.itemQuantity = ko.observable("");
    self.itemQuantityValid = ko.computed(function () {
        var q = self.itemQuantity();
        return q != "0" && q != '00' && q != null && q != '';
    }, this);
};

var vm = new ProductLayoutViewModel();
ko.applyBindings(vm);

见小提琴

于 2013-06-27T13:30:21.173 回答
0

我想你是想写

return self.itemQuantity() != "0" && self.itemQuantity() != null;
于 2013-06-27T13:27:03.733 回答