如何通过编程在所有浏览器中禁用/关闭Javascript中的DropDownList?

如何通过编程在所有浏览器中禁用/关闭Javascript中的DropDownList?,javascript,jquery,kendo-ui,kendo-dropdown,Javascript,Jquery,Kendo Ui,Kendo Dropdown,我不确定我们使用的剑道版本,我有两个文件: 剑道.all.min.js-剑道UI v2014.2.903 kendo.web.min.js-kendo UI v2015.1.429 我有一个表单,其中包含一些复杂的业务逻辑,它规定了网页上各种下拉列表的启用/禁用状态以及默认值。我有一个文本框的问题,这个文本框应该根据其值禁用下拉列表。控件的定义如下: @(Html.Kendo().TextBoxFor(m => m.SomeTextboxValue).HtmlAttributes(ne

我不确定我们使用的剑道版本,我有两个文件:

  • 剑道.all.min.js
    -剑道UI v2014.2.903
  • kendo.web.min.js
    -kendo UI v2015.1.429
我有一个表单,其中包含一些复杂的业务逻辑,它规定了网页上各种下拉列表的启用/禁用状态以及默认值。我有一个文本框的问题,这个文本框应该根据其值禁用下拉列表。控件的定义如下:

@(Html.Kendo().TextBoxFor(m => m.SomeTextboxValue).HtmlAttributes(new { id = "txtSomeField", onfocus = "FocusC0500()", onblur = "BlurC0500(false);FinalizeColor(this);" }))

@(Html.Kendo().DropDownListFor(m => m.SomeDropdownValue).HtmlAttributes(new { id = "cmbSomeField", onchange = "OnChangeC0600(this, false, false);FinalizeColor(this);"}).BindTo(ViewBag.YesNoDash).OptionLabel(" "))
文本框的
onblur
事件上的
BlurC0500
函数就是问题所在。根据输入的值,执行以下JS:

// the variable cmb refers to cmbSomeField, the dropdown list defined above
if ($("#cmbSomeControl").val() == "" || $("#cmbSomeControl").val() == '0')
{
    cmb.select(0);
    cmb.readonly(true);
    cmb.close();
    SetTabIndexVals("cmbSomeField", "DROPDOWN", -1);
    cmb.wrapper.find('.k-input').css('background', '#DDDDDD');
}
else if (val == "" && $("#cmbSomeControl").val() == '1')
{
    cmb.select(0);
    cmb.readonly(false);
    SetTabIndexVals("cmbSomeField", "DROPDOWN", 1);
    cmb.wrapper.find('.k-input').css('background', '#FFA500');
}
else
{
    cmb.select(1);
    cmb.readonly(true);
    cmb.close();
    SetTabIndexVals("cmbSomeField", "DROPDOWN", -1);
    cmb.wrapper.find('.k-input').css('background', '#DDDDDD');
}
根据所使用的浏览器和浏览器的特定版本,我们办公室的三个人会得到不同的结果。例如,这在我的机器(Chrome v58)上有效,但在我同事的机器(Chrome v50)上不起作用

cmb.close()
它在Chrome和FireFox中似乎可以正常工作,但在IE中却不行——同样取决于版本


那么我该如何纠正这个问题呢?

我使用内置的enable方法来禁用和启用kendo dropdownlist,而不是设置readonly和close。它可以在多种浏览器上运行(例如,Chrome、Firefox)

cmb.enable(true/false);