Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将k状态禁用类应用于文本输入-剑道UI_Javascript_Jquery_Kendo Ui - Fatal编程技术网

Javascript 将k状态禁用类应用于文本输入-剑道UI

Javascript 将k状态禁用类应用于文本输入-剑道UI,javascript,jquery,kendo-ui,Javascript,Jquery,Kendo Ui,这是我的名片 正如您所看到的,禁用的文本输入在视觉上与kendoComboBox小部件不同。当应用程序范围中的禁用状态更改时,是否有方法将k-state-disabled类添加或删除到文本输入?对于文本输入,我希望具有与小部件相同的行为。我认为最简单、更方便的方法是在设置禁用属性值时添加/删除k-state-disabled 启用文本框的示例: $("#textboxtest").prop("disabled", false).removeClass("k-state-disabled");

这是我的名片


正如您所看到的,禁用的文本输入在视觉上与kendoComboBox小部件不同。当应用程序范围中的禁用状态更改时,是否有方法将k-state-disabled类添加或删除到文本输入?对于文本输入,我希望具有与小部件相同的行为。

我认为最简单、更方便的方法是在设置禁用属性值时添加/删除k-state-disabled

启用文本框的示例:

$("#textboxtest").prop("disabled", false).removeClass("k-state-disabled");
要禁用它,请执行以下操作:

$("#textboxtest").prop("disabled", true).addClass("k-state-disabled");
您的JSFIDLE使用两个按钮进行了修改,用于启用/禁用它

编辑:另一种可能是将字段定义为无数据源的自动完成。实际上,您不需要定义任何CSS类。您的输入字段定义为:

<input id="textboxtest" data-role="autocomplete" type="text" disabled="disabled" value="test" style="width: 300px" />

您可以在另一个JSFIDLE中看到它:

如果您需要在on ready中执行此操作,那么这可能会有所帮助:

if ($('#textboxtest').attr('disabled')=='disabled')
    $('#textboxtest').addClass('k-state-disabled');
else
    $('#textboxtest').removeClass('k-state-disabled');

但是我必须调用这段代码,在所有可能的文本框状态变化之后。我的一些文本框通过ajax调用动态加载。作为与@OneBai对话的后续内容,如果你想使用文本框,你可以像下面这样选择它们$'.k-textbox'.addClassk state disabled或$'input[type=text]'.addClassk state disabled,这样,您不必按IDB选择每个文本框,但在文本框的状态发生所有可能的变化之后,我必须调用这段代码。我的一些文本框是通过ajax调用动态加载的。这对你来说可以接受吗?我知道它需要两条指令,但你没有给代码添加太多逻辑。是的@OnaBai你是对的。我知道这段代码工作得很好,但我正在寻找一种更通用的方法来实现这一点。考虑一个详细的ui,它包含大量文本输入和触发启用/禁用的大量逻辑。因此,我不想为每种情况添加addClass/removeClass行,也不想为此调用另一个函数。很快我想要一个像combobox小部件一样工作的texbox。我想知道是否有可能使用剑道ui框架。有两个选项:1创建自己的小部件,可能看起来太多了,但它并没有那么复杂,但当然你需要编写代码。2将输入定义为没有数据源的自动完成。请看这里:第二个非常实用。我想我会经过那里。谢谢。
if ($('#textboxtest').attr('disabled')=='disabled')
    $('#textboxtest').addClass('k-state-disabled');
else
    $('#textboxtest').removeClass('k-state-disabled');