DOM을 조작하기위한 많은 JavaScript 기능이 포함 된 웹 양식이 있습니다. 이것은 AJAX를 사용하여 엘리먼트 숨김, 드롭 다운 메뉴 삭제, 선택 항목 제거 및 새 항목 삽입과 같이 수행해야하는 모든 작업을 반환하는 서비스를 호출하여 수행됩니다.양식을 다시 게시 할 때 클라이언트 요소가 업데이트되지 않습니다.
모든 것이 예상대로 작동합니다 하나의 특정 기능. 이 함수는 내 AJAX 호출이 반환 한 값에 따라 select 요소에서 기본값을 비활성화하고 설정합니다. 예를 들어, 다음 선택에서 "foo"를 선택했다고 가정 해 보겠습니다.
<select id="mySelect2">
<option value="0">Default</option>
<option value="foo">Foo</option>
<option value="another_foo">Foo 2</option>
</select>
위대한! 이제는 AJAX 호출을 트리거 한 웹 양식의 다른 요소를 변경했습니다. 반환 된 데이터는 Default를 선택하고 select 요소를 비활성화해야 함을 알려줍니다. 이것은 잘 작동합니다. 그러나 레코드를 다시 저장하고 DB에서 확인하면이 경우 기본값 인 0이 저장되지 않습니다. 레코드는 이전에 선택한 항목 ("foo")과 함께 유지됩니다.
당신은,이 달성하기 위해 다음 코드를 궁금 사용하는 경우
는 AJAX 호출
$('myElement').change(GetData);
GetData 메서드
$.ajax({ type: 'POST', url: 'myUrl', data: "{'id':'" + myIdFromMyElement + "'"}", contentType: 'application/json; charset=utf-8', dataType: 'json', success: OnSuccess, error: OnError });
선택을 조작 바인드를 반환 된 데이터에 따라 요소 :
function OnSuccess(data, textStatus) { if (data.d.DisableMySelect2){ $('#mySelect2').val('0'); $('#mySelect2').attr('disabled', 'disabled'); } }
왜 이런 일이 무엇입니까?
편집 : 내 웹 양식이 올바르게 변경된 값을 바인딩 해제하지 않습니다하지만 난 Request.Form["mySelect2"]
을 갈 때 나는 실제로 업데이트 된 값을 볼 수 있다는 것을 보여
또한 조사, 그래서 분명히의 클라이언트 측 아무 문제가 없다 소지품.
옙 당신은 분명하지만 추가 조사 결과 내 웹 양식이 값을 올바르게 바인딩하지 않는다는 것을 알았지 만 Request.Form에 갈 때 업데이트 된 값이 포함되어 있습니다. –
CMS에 있습니다. 감사. –
당신은 afgallo를 환영합니다. – CMS