【发布时间】:2015-08-17 18:48:42
【问题描述】:
我有一个 MVC Razor 项目,在我看来,我有一个 Html.TextBoxFor 和 data-bind="disable: setRoot"。这个input 被Select2 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 的输入。
我需要做什么?
【问题讨论】:
标签: javascript jquery asp.net-mvc razor knockout.js