আপনি থিম স্তরের চেয়ে মডিউল স্তরে এটি করা ভাল, কারণ জেএস প্রশাসক পৃষ্ঠাগুলির জন্য অন্যথায় কার্যকর হবে না (অবশ্যই আপনি উভয়ের জন্য একই থিম ব্যবহার করছেন)।
সিস্টেম-বিস্তৃত এই কার্যকারিতাটি সরবরাহ করতে এখানে একটি ছোট মডিউল রয়েছে:
ফাইল: 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
ফাইল: অটো_আপলোড.জেএস:
(function ($) {
Drupal.behaviors.autoUpload = {
attach: function (context, settings) {
$('form', context).delegate('input.form-file', 'change', function() {
$(this).next('input[type="submit"]').mousedown();
});
}
};
})(jQuery);
ফাইল: অটো_আপলোড.মডিউল
function auto_upload_init() {
drupal_add_js(drupal_get_path('module', 'auto_upload') . '/auto_upload.js');
}
একবার আপনি অ্যাজ্যাক্স-আইআইডিযুক্ত সমস্ত ফাইল ইনপুটগুলি মডিউল ইনস্টল করলে (যেমন 'আপডেট' বোতাম রয়েছে তাদের) প্রভাবিত হবে ... ফাইলটি নির্বাচনের পরে আপনাকে আর 'আপলোড' বোতাম টিপতে হবে না ।
delegate()
পদ্ধতিটি ব্যবহার করে এটি একাধিক আপলোডের অনুমতি দেয় এমন ফাইল ক্ষেত্রগুলির জন্য এবং অ্যাজেএক্স অনুরোধের ফলাফল হিসাবে পৃষ্ঠাতে লোড হওয়া ক্ষেত্রগুলির জন্যও পুরোপুরি কাজ করবে।
আমি এটি ক্রোম, সাফারি এবং ফায়ারফক্সে পরীক্ষা করেছি এবং এটি একটি ট্রিট কাজ করে :)
পাদটীকা : আপনার সাইটটি jQuery 1.7 ব্যবহার করছে (সম্ভবত খুব সম্ভবত সম্ভাব্য) ইভেন্টে আপনার সেই on()
পদ্ধতিটি ব্যবহার করা উচিত , যা ছাড়িয়ে গেছে delegate()
।
আপডেট করুন আমি এই মডিউলটির জন্য একটি স্যান্ডবক্স প্রকল্প তৈরি করেছি ।