2012-05-21 3 views
0

안녕하세요 여러분 안녕하세요 아주 흥미로운 상황이 있습니다.asp.net mvc, dropdownlist, jquery

나 드롭 다운리스트는

@Html.DropDownListFor(m => m.MediaType, Model.MediaTypeList) 

의해 생성되는 방법 나 손으로 형상을 채울 때 폼의 모든 값을 확인하며, 기능에 의해 드롭 다운리스트 *에서의 MediaType이 필요한 뷰 모델을 그것이 해야하는 방식으로 작동합니다.

하지만 난 당신이 자동으로 어떤 미디어 유형을 감지하는 파일을 업로드 할 때마다 드롭 다운리스트의 값을 설정 jquery 함수를 구현했습니다.

function setValueToDropDown(media){           
    $('#MediaType').attr('disabled',''); 
    var value = media; 
    $('#MediaType').val(value); 
} 

와 나는 드롭 다운리스트가 선택 옵션이 경우에도, 도메인 검증이 필드가 필요하다는 것을 말해 제출하고 난 값을 확인하는 콘솔의 기능을 실행할 때 NULL이 아닌 다른 경우.

alert($('#MediaType').val()) 

그래서 내가 왜 동적으로 드롭 다운에 값을 지정하면 mvc가 인식하지 못하는지 이해하지 못합니다. 나는 사방을 보았고 문제는 찾을 수 없다.

+0

'value'는 선택하려는 옵션의 적절한 _value입니까? 아니면 그 옵션에서 테스트를 랩 프리젠 테이션합니까? 그 경우에는 값을 – themarcuz

+0

으로 선택하고 싶습니다. 난 그저 브레이크 포인트를 넣고 파이어 버그의 값을 봅니다. 이제 매개 변수에서 미디어 값을 볼 수 있기 때문에 약간의 더미가 생겼습니다. –

+0

숨겨진 입력 필드를 만들고 내보기 모델에서 매핑하기로 결정 해 주셔서 감사합니다. 이미 많은 시간을이 컴퓨터에서 보내고 있습니다. –

답변

1

이 활성화하고 <select> 요소의 값을 설정하기에 충분합니다.

var setValueToDropDown = function(media) { 
    $('#MediaType').prop('disabled', false).val(media); 
}; 

당신은 버전 1.6 이후 disabled 같은 속성을 관리 할 수 ​​.prop()를 사용해야합니다. DOM 준비 후 스크립트를 실행하고 있는지 확인하십시오.

1

실행하는 스크립트가 어떻게 보이는지, 어떤 스크립트가 실행되는지는 잘 모릅니다. 하지만 어쩌면 스크립트는 value속성 대신

이를 사용하여보십시오 value재산을 찾고있다 :

function setValueToDropDown(media){           
    $('#MediaType').attr('disabled',''); 
    var value = media;     // Why do you save media in value...? 
    $('#MediaType').attr("value", value); 
}