jQuery로 mulitselect의 사전 선택 값
-
19-09-2019 - |
문제
페이지 로딩에있는 값 세트가 있습니다 : 예 : [1193,1184,2372].
so $ ( ". ddl")와 같은 단일 값을 취할 수있는 드롭 다운 체크리스트가 있습니다. Dropdownchecklist (). val (1193);
DropdownCheckList를 다시 반점하면 값이 올바르게 선택됩니다. 그러나 여러 값이 포함 된 배열을 Val () 메소드로 전달하려고 시도했지만 값을 선택하지 않습니다. 나는 이것을 기대했다. 사전 선택에 대해 가장 잘 어울리는 방법을 잘 모르겠습니다.
다음과 같이 적용하기 위해 필터 속성을 만들기 위해 배열을 반복하려고 시도했습니다. $ ( ". ddl [value*= '1184'] [value*= '9067'] [value*= '14841'])). attr ( 'selected', 'selected');
그러나 이것은 작동하지 않습니다. 나는 DDL의 모든 옵션을 반복하고 수백 가지 옵션이 있기 때문에 일치하는 경우 선택하도록 설정하고 싶지 않으며, 특히 2 개의 옵션 만 프리 릿트를 할 수있는 경우 성능이 좋지 않을 것입니다.
어떤 아이디어?
해결책
선택한 문자열을 만들어 jQuery 선택기 문자열을 만들고 .find () 함수에 넣습니다.
var str = '';
var arrLength = selectedArray.length;
$.each(selectedArray, function(i){
str += 'option[value*='+selectedArray[i]+']';
if((i+1) != arrLength){
str += ', ';
}
});
$('.ddl').find("option[value*='1184'], option[value*='9067'], option[value*='14841']")
.attr('selected','selected');
또한 드롭 다운을 값과 비교할 때 option
선택 요소 자체가 아닌 SELECT의 요소.
다른 팁
나는 이것으로 작업했지만 위의 답변은 좋은 해결책처럼 보입니다.
$.each(arr, function(i,s)
{
$(ddl_id + ' [value*=\'' + s + '\']').attr('selected','selected');
});
어느 쪽이 더 빠를 가능성이 높지만 조금 더 깨끗한지를 확실하지 않습니다.