我遇到DropDownList multiselect(Reference)的问题。
我想要的......
我想以编程方式单击下拉列表中的某些复选框,使用它们的值(对于回发问题)。
在'参考'中,我发现jQuery中存在一个错误,所以我需要这样做 - >
$("select").multiselect("widget").find(":checkbox").each(function(){
this.click();
});
所以,我试过这个并且工作了...然后,我添加了“[value ='value']”,它起作用了。这正是我所需要的。
$("select").multiselect("widget").find(":checkbox[value='value']").each(function(){
this.click();
});
这就是我所做的:我在回发之前获得了一个包含所选值的数组( consultantValues )。然后,我想在下拉列表“Consultant”中找到带有数组值的复选框,最后点击它。
代码 - >
for (var x = 0; x < consultantValues.length; x++) {
var consultantSelected = ":checkbox[value='" + consultantValues[x] + "']";
var doConsultantStringCode = $("id$='ddlConsultant']").multiselect("widget").find(consultantSelected);
for (var a = 0; a < doConsultantStringCode.length; a++) {
doConsultantStringCode[a].click();
}
}
这就像一个魅力:B 顺便说一句,我使用“for”而不是“each”,因为它运行得更快。
在其他下拉菜单中,我尝试做同样的事情......它有效,但突然间它停止了工作:/
代码 - &gt;
for (var i = 0; i < selectedManagements.length; i++) {
var checkboxValue = ":checkbox[value='" + selectedManagements[i] + "']";
var findCheckbox = $("[id$='ddlManagement']").multiselect("widget").find(checkboxValue);
for (var k = 0; k < findCheckbox.length; k++) {
findCheckbox[k].click();
}
}
我坚持这个:/
备注:
答案 0 :(得分:2)
为什么不添加checked="checked"
属性,而不是模仿点击?实际上,触发用户未启动的DOM事件实际上太糟糕了。
这样做:
$("select").multiselect("widget").find(":checkbox").each(function(){
this.attr({ checked: "checked" });
});
答案 1 :(得分:0)
我终于设法解决了这个问题。
我和一些人合作,我们都在同一个网站上工作。 问题是有人在我的代码之后移动了设置多选的部分(使用它的配置)...
所以,我的代码正在寻找仍然不存在的东西,所以它没有做任何事情。
有两件事可做:
2:示例:
management.attr("multiple", 'multiple');
if (selectedManagements != null) {
for (var z = 0; z < selectedManagements.length; z++) {
var checkboxValue = "[value='" + selectedManagements[z] + "']";
var findSelectedCheckbox = management.children(checkboxValue);
for (var lambda = 0; lambda < findSelectedCheckbox.length; lambda++) {
findSelectedCheckbox[lambda].setAttribute('selected', true);
}
}
}
[...]
management.multiselect({
selectedList: 2,
noneSelectedText: 'Select a management',
width: 300
}).multiselectfilter();
PS:我感谢@ mvbl-fst帮助改进我的代码:)