是否可以禁用 DropDownList 中的条目?例如,我可以阻止用户选择“请选择”条目。
问问题
15575 次
4 回答
4
Kendo 目前不支持此类功能,但这是我发现禁用 Kendo Dropdown 选项的最简单方法。
$("#" + id + "_listbox .k-item")[index].disabled = true;
其中 id -> 下拉
索引的 ID -> 要禁用的下拉列表中元素的位置。
希望能帮助到你。享受 :)
于 2014-02-07T19:13:22.573 回答
2
我相信这是一项验证工作。如果您必须在下拉列表中显示不可选择的条目,请给它们不同的 css(将它们变灰),并且一旦选择了值,就采取一些措施 - 验证消息。取消选择或使用下拉菜单执行任何其他技巧会使用户感到困惑。如果您有机会,请从下拉列表中删除这些项目,如果无法选择它们,请不要显示它们 - 正如 RGraham 建议的那样。下面是一个示例,如何验证可选标签(您要求“请选择”)条目以及如何在进行更改后获取所选值,这应该可以帮助您。
小提琴:http: //jsfiddle.net/vojtiik/KpMk4/1/
// create DropDownList from input HTML element
var ddl = $("#color").kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
dataSource: data,
index: 0,
optionLabel: "Select color...",
change: function () {
validator.validate();
if (ddl.value() == 3)
{
console.log('Do something ?');
}
}
}).data("kendoDropDownList");
var validator = $("#color").kendoValidator().data("kendoValidator");
于 2013-08-15T09:51:53.747 回答
2
您可以通过 Select-Event 禁用此选项。
它很简单:
$('input').kendoComboBox({
dataTextField: 'text',
dataValueField: 'id',
dataSource: {
transport: {
read: function(options) {
//instead, specify ajax call or get data from somewhere else
options.success([{ id: -1, text: 'Please select' }, {id: 1, text: 'A'}]);
}
}
},
select: function(e) {
var dataItem = this.dataItem(e.item.index());
if(dataItem.id === -1) {
e.preventDefault();
}
}
});
于 2013-08-15T07:37:24.767 回答
0
在我的情况下,如果用户没有授权,我必须禁用下拉选项。我无法禁用此选项,但我已删除此选项。愿这段代码可以帮助你。
@(Html.Kendo().DropDownListFor(i => i.CallTypeId)
.Name("CallTypeId")
.HtmlAttributes(new { style = "width:100%" })
.DataTextField("MasterValueName")
.DataValueField("MasterValueId")
.Events(x => x.Open("ManageSecurity"))
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCallType", "Common", new { Area = "" });
});
})
.OptionLabel("Select Call Type")
)
function ManageSecurity() {
debugger;
var result = '@TrackingHelper.CurrentUser.IsViewTestCallType';
if (result == "False") {
var ds = $("#CallTypeId").data("kendoDropDownList").dataSource;
debugger;
var elementToRemove = null;
for (var i = 0; i < ds._data.length; i++) {
var element = ds._data[i];
debugger;
if (ds._data[i].MasterValueId === "335d2eae-dc47-40f7-b616-a2501b2f60bc") {
debugger;
elementToRemove = ds._data[i];
}
}
if (elementToRemove) {
debugger;
ds.remove(elementToRemove);
}
}
else {
debugger;
}
}
于 2015-12-29T10:24:14.660 回答