>  기사  >  웹 프론트엔드  >  js_form 효과를 사용하여 양식에 enctype=multipart/form-data를 동적으로 삽입하는 데 문제가 있습니다.

js_form 효과를 사용하여 양식에 enctype=multipart/form-data를 동적으로 삽입하는 데 문제가 있습니다.

WBOY
WBOY원래의
2016-05-16 17:53:061460검색

양식이 파일을 제출할 수 있으려면 파일을 업로드할 수 있도록 양식에 enctype=multipart/form-data 속성을 지정해야 한다는 것을 모두 알고 있으므로 여기서는 다루지 않겠습니다. 여기서는 설명하지 마세요.

문제는 MVC의 Html.BeginForm()을 사용하여 양식 코드를 출력하는 것입니다.

복사 code 코드는 다음과 같습니다.

@using (Html.BeginForm()) {
}

있습니다. < in PartialView ;input type="file" />은 파일을 업로드하는 데 사용되지만 이 PartialView에 대한 상위 페이지의 Html.BeginForm()을 수정하고 싶지 않습니다. Enctype을 양식에 추가하는 PartialView:

코드 복사 코드는 다음과 같습니다.

$(function(){
$('# file').parents('form').attr('enctype', 'multipart/form-data');
});
최근 주류 브라우저는 테스트를 통과했나요? 문제는 몇 가지 이전 버전의 IE에만 ​​문제가 있다는 것입니다. 문제를 해결하기 위해 Html.BeginForm()에 enctype을 수동으로 추가해 보았지만 문제는 다음과 같습니다. 위의 스크립트. 여러 번 검색한 끝에 IE6, 7, 8에서는 직접 attr('enctype', 'multipart/form-data')를 지원하지 않지만 dom 속성을 인코딩='multipart/form-data로 설정했기 때문에 문제가 발생한다는 사실을 발견했습니다. ', 최종 스크립트 코드 수정:


코드 복사 코드는 다음과 같습니다.
$(function () {
$('#file').parents('form').attr('enctype', 'multipart/form-data').get(0).encoding = '다중 부분/양식 데이터'
})

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.