在我点击按钮后,我想让我的表单可以编辑。
我为点击按钮编写代码,但我不知道如何更改表单中输入的状态。
viewModel.test= function () {
//code here
}
<input type="text"/> // Enable/Disable this
我可以禁用/启用表单中的所有输入,或者我只需要逐个执行此操作吗?
答案 0 :(得分:11)
使用纯粹的淘汰赛,你可以做到这一点,基本上切换isDisabled
observable,它更新绑定元素上的disabled
属性。您可以使用knockout attr
绑定来设置元素的属性。
var ViewModel = function() {
var self = this;
self.isDisabled = ko.observable(false);
this.disable = function(){
self.isDisabled(true);
}
this.enable = function(){
self.isDisabled(false);
}
};
ko.applyBindings(new ViewModel());
<div>
<input type="text" data-bind="attr : {'disabled' : isDisabled}"/> // Sets disabled attribute if isDisabled is true.
<input type="text" data-bind="attr : {'disabled' : isDisabled}"/>
<button data-bind="click : disable">Disable</button>
<button data-bind="click : enable">Enable</button>
</div>
答案 1 :(得分:3)
我不确定在IE8及以下版本中支持的效果如何,但您可以使用knockout来启用/禁用表单输入:
function vm() {
var self = this;
self.hasForm = ko.observable(false);
self.cellphoneNumber = "";
self.personName = ""
}
ko.applyBindings(new vm());
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
<input type='checkbox' data-bind="checked: hasForm" />I have a cellphone & a name
</p>
<p>
<form id="form">
<label>Your cellphone number:</label>
<input type='text' data-bind="value: cellphoneNumber, enable: hasForm" />
<label>Your Name:</label>
<input type='text' data-bind="value: personName, enable: hasForm" />
</form>
</p>
&#13;