我有一个MVC剃刀项目,在我看来,我有一个Html.TextBoxFor
带data-bind="disable: setRoot"
。这input
是通过选择二jQuery插件使用。我的问题是disable
绑定无法正常工作。这是我的代码:
<div class="control-label">Category</div>
<div class="input-group">
<div class="input-group-addon"><label><input data-bind="checked: setRoot" type="checkbox"> root</label>
</div>
@Html.TextBoxFor(m => m.Create.IdCategory, new { id = "QuickSearchMainCategory", data_bind = "disable: setRoot, value: model.Create.IdCategory", @class = "form-control" })
</div>
和我的js:
self.setRoot = ko.observable(true);
self.beRoot = ko.computed(function() {
if (self.setRoot() === true) {
self.model.IdCategory(self.model.IdRootCategory());
} else {
self.model.IdCategory(null);
}
});
$("#QuickSearchMainCategory").select2({
placeholder: "Category search",
minimumInputLength: 3,
width: 'resolve',
ajax: {
url: urlQuickSearchCategory,
contentType: 'application/json',
dataType: 'json',
type: 'POST',
traditional: true,
quietMillis: 400,
data: function(term, page) {
var data = {
term: term
};
return data;
},
results: function(data, page) {
return { results: data };
}
},
dropdownCssClass: "bigdrop",
formatResult: function(item) { return item.id + " - " + item.label; },
formatSelection: function(item) { return item.id + " - " + item.label; },
escapeMarkup: function(m) { return m; }
});
如果我检查html,则禁用功能有效,但不适用于整个select2元素,而仅适用于具有id的输入QuickSearchMainCategory
。我需要做什么?
Select2不适用于'disabled'绑定,因为您必须使用其内置函数明确告诉select2禁用自身。
您必须使用此功能来禁用/启用它:
$('#QuickSearchMainCategory').select2('disable');
$('#QuickSearchMainCategory').select2('enable');
您必须在您的ko视图模型中执行此操作,因为仅设置禁用的HTML属性是不够的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句