JS는 관리 페이지에 다른 방식으로 적용되지 않기 때문에 (물론 동일한 테마를 사용하지 않는 한) 테마 수준이 아닌 모듈 수준에서이 작업을 수행하는 것이 좋습니다.
다음은이 기능을 시스템 전체에 제공하는 작은 모듈입니다.
파일 : auto_upload.info
name = Auto Upload
description = Removes the need for users to press the 'Upload' button for AJAX file uploads.
core = 7.x
dependencies[] = file
파일 : auto_upload.js :
(function ($) {
Drupal.behaviors.autoUpload = {
attach: function (context, settings) {
$('form', context).delegate('input.form-file', 'change', function() {
$(this).next('input[type="submit"]').mousedown();
});
}
};
})(jQuery);
파일 : auto_upload.module
function auto_upload_init() {
drupal_add_js(drupal_get_path('module', 'auto_upload') . '/auto_upload.js');
}
모듈을 설치하면 AJAX 인증 된 모든 파일 입력 (예 : '업데이트'버튼이있는 입력)이 영향을받습니다. 파일을 선택한 후 '업로드'버튼을 더 이상 누를 필요가 없습니다. .
delegate()
이 방법 을 사용 하면 여러 업로드를 허용하는 파일 필드와 AJAX 요청의 결과로 페이지에로드되는 필드에도 완벽하게 작동합니다.
나는 그것을 Chrome, Safari 및 Firefox에서 테스트했으며 잘 작동합니다 :)
각주 : 귀하의 사이트가 jQuery 1.7을 사용하는 (아마도 가능성이 거의없는) 이벤트 on()
에서는 중첩 된 메소드를 사용해야합니다 delegate()
.
업데이트이 모듈에 대한 샌드 박스 프로젝트 를 만들었습니다 .