jQuery .val (#)은 AJAX 호출 후 선택을 변경하지 않습니다. 디버깅 / 일시 중지 된 경우 작동합니다.

aohm1989

흥미로운 문제가 있습니다. 페이지로드 또는 입력 된 필터를 기반으로 새 항목으로이 약속 목록 드롭 다운을 새로 고치는 AJAX 호출을 수행 할 때 .val () 메서드가 설정 되지 않습니다.

이것이 AJAX 메서드의 성공이 할 것입니다. 기본적으로 새 항목으로 AppointmentList 드롭 다운을 백업합니다.

                    $.map(data, function (item) {
                        $('#AppointmentList').get(0).options[$('#AppointmentList').get(0).options.length] = new Option(item.AppointmentTime, item.ID);

                    });

이것은 기본적으로 #AppointmentList 드롭 다운을 다시 채우는 $ .ajax () 메서드를 포함하는 함수를 호출합니다. 새 값 세트를 되찾았을 때 이전 "약속"이 미리 채워져 있어야합니다.

            var tempVal = $('#AppointmentList').val();
            DropDownList();
            $('#AppointmentList').val(tempVal);

아무 작업도 수행하지 않으며 다시 생성 된 목록의 첫 번째 요소가 선택됩니다.

그러나 중단 점을 설정하면 :

$('#AppointmentList').val(tempVal);

그러면이 드롭 다운이 변경 될 수있을만큼 충분한 시간이 지난 것 같습니다. 중단 점이 있고 계속하면 드롭 다운이 Javascript를 디버깅하는 경우 원하는 값으로 다시 변경됩니다.

이것을 리팩토링하는 방법에 대한 아이디어가 있습니까? $ .map () 함수를 실제로 수행 할 때 이전 값을 설정할 수 있다고 생각했습니다.하지만이 코드는 작동하는 것 같습니다. Ajax가 완료되고 필요한 시간 사이에 시간이 좀 더 필요하다면 .val ()을 다시 설정합니다.

aohm1989

멍청한 질문을하세요-멍청한 대답을 찾으세요-그런 것 같아요. 비동기. 이런.

이 두 줄을 $ .ajax () 호출 위에있는 위치로 이동합니다.

var tempVal = $('#AppointmentList').val();

그런 다음 값을 설정하는 행을 성공 범위 내 에서 $ .map () 뒤에 넣습니다 .

$('#AppointmentList').val(tempVal);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관