仅当KnockoutJS中的值不同于0或为null时才启用
Enable only if is different than 0 or null in KnockoutJS
目标
仅当输入不同于零(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);
};
请看一下这个小提琴
视图:
<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>
ViewModel:
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);
请参阅fiddle
我想你是想写的
return self.itemQuantity() != "0" && self.itemQuantity() != null;
相关文章:
- React.createElement:类型不应为null或未定义
- 对象为null或IE9中存在未定义错误
- Microsoft JScript运行时错误:无法获取属性'的值;样式':对象为null或未定义
- 如何在jsrender中检查数组null或为空
- global.getElementById('..')为null或不是对象
- IE8错误:为null或不是对象,但仍然可以跟踪/控制台注销
- AJAX请求中的JSON对象为Null或空
- Highcharts无法设置属性'的值;要点':对象为null或未定义
- ui.selectmenu投掷'this.newelement.0'为null或不是对象
- IE错误:无法设置属性'的值;样式':对象为null或未定义
- 我的代码给了我一条错误消息:GetElementById()为null或不是对象
- 无法在jasmine it函数中将未定义或null转换为对象
- Javascript'type[..][..]'为null或不是对象IE8错误
- IE:无法获取属性'的值;clientWidth':对象为null或未定义
- Ext.getCmp('panel')给出this.el为null或不是对象
- <IE8错误:'polygonOptions.fillColor'为null或不是对象
- Traceur运行时:超级表达式必须为null或函数,而不是未定义的
- 财产的价值'openNewWin'为null或未定义,而不是Function对象
- IE 0.width为null或不是对象
- 当属性src为null或为空时,.prp('src')为什么返回错误的值