jQuery로 드롭다운 목록의 선택된 값 변경하기

알려진 값이 있는 드롭다운 목록이 있습니다. 제가 하려는 것은 jQuery를 사용하여 드롭다운 목록을 제가 알고 있는 특정 값으로 설정하는 것입니다. 일반 자바스크립트를 사용한다면 다음과 같은 작업을 수행할 것입니다:

ddl = document.getElementById("ID of element goes here");
ddl.value = 2; // 2 being the value I want to set it too.

하지만 선택기(멍청한 ASP.NET 클라이언트 아이디...)에 CSS 클래스를 사용하고 있기 때문에 jQuery를 사용하여 이 작업을 수행해야 합니다.

다음은 내가 시도한 몇 가지 방법입니다:

$("._statusDDL").val(2); // Doesn't find 2 as a value.
$("._statusDDL").children("option").val(2) // Also failed.

jQuery로 어떻게 할 수 있나요?

업데이트

결과적으로 저는 처음에 제대로 해냈습니다:

$("._statusDDL").val(2);

바로 위에 경고를 넣으면 정상적으로 작동하지만 경고를 제거하고 최고 속도로 실행하면 오류가 발생합니다.

선택한 속성을 설정할 수 없습니다. 잘못된 인덱스

jQuery의 버그인지 Internet Explorer 6의 버그인지는 잘 모르겠지만(Internet Explorer 6인 것 같습니다), 정말 짜증나는 문제입니다.

질문에 대한 의견 (3)
해결책

jQuery의 문서에는 다음과 같이 명시되어 있습니다:

jQuery.val]은 모든 라디오 버튼, 체크박스 및 값 집합과 일치하는 선택 옵션을 확인하거나 선택합니다.

이 동작은 jQuery 버전 1.2 이상에 있습니다.

이 기능을 원하실 것입니다:

$("._statusDDL").val('2');
해설 (9)

숨겨져 있는 필드이므로 이렇게 사용해야 합니다.

$("._statusDDL").val(2);
$("._statusDDL").change();

또는

$("._statusDDL").val(2).change();
해설 (3)

그냥 오버클로킹된 FYI 전날에약혼자에게 don& # 39, 이를 위해 CSS 클래스뿐만 사용할 필요가 없다.

올바른 제어입니다 이름을 쓸 수 있습니다 다음 코드 행을 afaq 클라이언트상의:

$("#").val("2");

ASP.NET 렌더링됩니다 제대로 인사이드라면 제어 id 를 포함한다.

해설 (5)

다음을 사용해보세요.

$("._statusDDL").val("2");

가 아닌

$("._statusDDL").val(2);
해설 (0)

이 후 몇 가지 해결책을 찾는 협력했습니다 for me.

나는 내가 원하는 일부 값과 같은 다른 가치를 선택할 수 있는 한 드롭다운을 나열하십시오 드롭다운을 목록. 그래서 '이' 의 첫 번째 I put my first 드롭다운을 변수로 셀레스틴데스.

var indiceDatos = $('#myidddl')[0].selectedIndex;

그럼 내가 선택한 나의 두 번째 드롭다운을 지수가 있는 목록.

$('#myidddl2')[0].selectedIndex = indiceDatos;
  • Note:*

아마 이것은 아주 짧은 시간 동안, 신뢰성, 일반 우아한 솔루션입니다.

제 경우에는 I& 때문에 선택한 option& # 39 의 데이터 값을 대신 사용하여 # 39, m, 속성 속성. 그래서 가장 빠른 방법은 없는 경우, 위 각 옵션마다 고유 값 달콤하고!!

해설 (1)

이 솔루션은 각 항목을 가지고 있는 것 같아 내 발 () 열거합니다 solaris. 드롭다운하십시오 입장을 관련된 가치를 드롭다운 목록에서.

이런 것들은 좀 더 복잡한 isn& # 39, t 케이스.

, 읽기 위해 선택한 색인입니다 드롭다운 목록이 사용하는 것과 이:

$("#dropDownList").prop("selectedIndex");

, 로 설정되었습니다 선택한 색인입니다 드롭다운 목록이 사용하는 것과 이:

$("#dropDownList").prop("selectedIndex", 1);

참고로, 제안 () 기능을 사용하려면 v1.6 이상을 포함한다.

이 두 가지 방법을 사용하는 것과 let& # 39 의 지켜보리니 총괄하였습니다.

가정하면 매달 이름을 드롭다운 목록이 했습니다.


<select id="listOfMonths">
  January
  February
  March
해설 (0)

그러나 이것은 오래된 질문 및 그러니까말이야 경우에 따라 위의 솔루션뀉뀉뀉뀉 작동합니다.

같은


<select id="select_selector">
Item1
Item2
Item3
Item4
Item5
해설 (0)

만약 우리가 드롭다운이) 의 칭호를 가지고 있는 데이터 classification&quot ";:


<select title="Data Classification">
    Top Secret
    Secret
    Confidential
해설 (0)

&gt. 그래서 이제는 도왔으매 변경했다 &gt. 300 밀리초 후에 실행하므로 사용하여 &gt. setTimeout. 지금 일하는 것으로 보인다.

나는 이 여러 번 경험할 때 에서 데이터를 로드하는 Ajax 호출. 나도 걸리는 시간을 가질 수 있는 사용할 때 사용하는 .NET 과 조정됨 클리렌티드 선택기를 포함한다. # 39, re 해결하십시오 you& 하는 문제를 피하기 때문에 '속성' 필요 없이 간단히 말해, '비동기 &quot 추가하기에서는 setTimeout 수 있습니다. 거짓값 '&quot. ajax 호출, 정보기술 (it) 의 dom 부여하느뇨 충분한 시간을 가질 수 있는 뒤로를 객체에는 추가하는 선택합니다. 작은 샘플 (아래 참조).

$.ajax({
    type: "POST",
    url: document.URL + '/PageList',
    data: "{}",
    async: false,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (response) {
        var pages = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;

        $('#locPage' + locId).find('option').remove();

        $.each(pages, function () {
            $('#locPage' + locId).append(
                $('').val(this.PageId).html(this.Name)
            );
        });
    }
});
해설 (0)

또 다른 옵션은 제어, 매개변수 클리렌티드 = &quot Static&quot 설정할 수 있습니다. net 에서는 객체에는 jquery 에 의해 설정한 후 id 를 액세스할 수 있습니다.

해설 (0)

그냥 참고 - i& # 39, ve (ASP.NET) 에 의해 항목과의 난독화 잡기 위한 클라이언트 id 를 사용해 온 와일드카드 선택기를 jquery 는 - 이 도움이 너무:



$("[id* = 'MyDropDown']").append(" "); //etc

이 경우에도 참고합니다 id * 와일드카드 - 발견하리니 요소는, ctl 0 $0 $1 $1$ 콘텐토프리스홀더 &quot 이름님은 ctl 콘텐토프리스홀더 MyDropDown&quot.

해설 (0)

내가 사용하는 클라이언트 침입탐지시스템 (ids) 과 같은 기능을 확장할 수 있습니다.

$.extend({
    clientID: function(id) {
        return $("[id$='" + id + "']");
    }
});

그런 다음 (ASP.NET) 에서 호출하십시오 제어하는지 jquery 다음과 같습니다.

$.clientID("_statusDDL")
해설 (0)



, 클리렌티드모데 = &quot Static&quot.

$('#DropUserType').val('1');
해설 (0)

사용 '$ (&quot, 선택 [이름 $ # 39, & # 39, MyDropDown& =] ") 스발 ()'.

해설 (1)

드롭다운 목록에 값을 로드하거나 선택할 값을 어떻게 결정하나요? Ajax를 사용하여 이 작업을 수행하는 경우 선택이 발생하기 전에 지연이 필요한 이유는 해당 줄이 실행될 때 값이 로드되지 않았기 때문일 수 있습니다. 또한 상태를 설정하기 전에 줄에 경고 문을 넣으면 경고 동작이 데이터를 로드하는 데 충분한 지연 시간을 제공하기 때문에 작동하는 이유도 설명할 수 있습니다.

jQuery의 Ajax 메서드 중 하나를 사용하는 경우 콜백 함수를 지정한 다음 콜백 함수에 $("._statusDDL").val(2);를 넣을 수 있습니다.

이렇게 하면 300밀리초 이상 걸리더라도 데이터가 준비되었을 때 메서드가 실행되는 것을 확인할 수 있으므로 문제를 보다 안정적으로 처리할 수 있습니다.

해설 (0)

저의 경우는 내가 이해했소 스타르 () 메서드를 사용하여 작업할 수 있었습니다.

$("._statusDDL").attr("selected", "");
해설 (0)