문제

페이지 로딩에있는 값 세트가 있습니다 : 예 : [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');
});    

어느 쪽이 더 빠를 가능성이 높지만 조금 더 깨끗한지를 확실하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top