用于Javascript中的In和属性问题
我目前正在创建一个函数,它通过数组检查值是否存在。如果值确实存在,则假定允许单击复选框。问题是出于某种原因,它没有启用复选框。它将在打印警报时进入if语句,但不会更改属性。从attr更改为prop在这种情况下没有任何区别,无论是哪种方式,它都没有做它应该做的事情。这是我的最新代码用于Javascript中的In和属性问题,javascript,jquery,kendo-asp.net-mvc,Javascript,Jquery,Kendo Asp.net Mvc,我目前正在创建一个函数,它通过数组检查值是否存在。如果值确实存在,则假定允许单击复选框。问题是出于某种原因,它没有启用复选框。它将在打印警报时进入if语句,但不会更改属性。从attr更改为prop在这种情况下没有任何区别,无论是哪种方式,它都没有做它应该做的事情。这是我的最新代码 var values = this.value(); var total = ["1", "2", "3", "4", "5"]; var group = ""; for (number in values) {
var values = this.value();
var total = ["1", "2", "3", "4", "5"];
var group = "";
for (number in values) {
if ($.inArray(values[number], total) != -1) {
group = "group" + values[number];
$("input." + group).prop("disabled", false);
alert("Group: " + group + " Values: " + values[number] + " The values DO match");
}
else {
group = "group" + values[number];
$("input." + group).prop("disabled", true);
$("input." + group).prop("checked", false);
alert("Group: " + group + " Values: " + values[number] + " The values do not match");
}
}
现在我下面列出的代码完全可以工作了。唯一的区别是硬编码类值与上面的变量
if ($.inArray("1", values) != -1 || $.inArray("2", values) != -1)
{
$("input.group1").prop("disabled", false);
}
else
{
$("input.group1").prop("disabled", true);
$("input.group1").prop("checked", false);
}
我正在使用剑道UI MVC。我已经复制了Multiselect的源信息。下面是代码的JFiddle 很抱歉。。这是前面的变量…为了防止它是一个数组(我不知道
This.value()
做了什么),这是一个非常简单的更改。虽然它被标记为已被回答,但它并不能解决我最初的问题。具有硬编码属性的第二个代码可以工作,但使用变量的代码不能工作。这没有多大意义。哎呀,我没有注意到第二个片段是有效的;对不起。尽管如此,对于禁用的和选中的,还是应该使用.prop
而不是.attr
。不重新处理问题的JSFIDLE并没有真正的帮助