عرض مربع حوار "تحديد ملف" في المتصفح عند التركيز إدخال الإدخال [اكتب = ملف] من خلال الملاحة لوحة المفاتيح

StackOverflow https://stackoverflow.com/questions/1734478

سؤال

كما يقول العنوان، أريد فتح مربع حوار "تحديد الملف" عند بعض input يحصل التركيز بواسطة tabbing من خلال حقول النموذج (باستخدام الملاحة لوحة المفاتيح). بشكل افتراضي، يتم فتح نافذة "تحديد الملف" فقط عند النقر فوق الحقل.

وضعت صفحة على JS بن لهذه المشكلة: http://jsbin.com/areba/edit.

حاليا، تتكون هذه الصفحة من التعليمات البرمجية التالية:

<!doctype html> 
<html> 
 <head> 
  <title>Sandbox</title> 
  <meta charset="utf-8"> 
 </head> 
 <body> 
  <form> 
   <input type="text"> 
   <input type="file">
  </form>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  <script>
   $(function() {
    $('input[type=text]').focus(function() {
     $(this).next('input[type=file]').css('background', 'lime').trigger('click');
    });
   });
  </script>
 </body> 
</html>

كما ترون، هناك إدخال نص وإدخال ملف. الفكرة هي أنه عند استلام إدخال النص التركيز، يحصل إدخال ملفات الملف "النقر فوق" أو أيا كان ويفتح نافذة "تحديد الملف".

ال .css('background', 'lime') البيان يبدو أن يعمل بشكل جيد؛ ومع ذلك، استدعاء .trigger('click') على ملف إدخال الملف يبدو أن لا يفعل شيئا على الإطلاق.

(أدرك أن هذا قد يسبب مشكلة في إمكانية الوصول، لذا يرجى، دعونا لا نناقش ذلك. شكر.)

هل كانت مفيدة؟

المحلول

سيعمل ذلك في IE و Safari (أعتقد)، ولكن ليس في Opera أو Firefox، لأنها لم تنفذ الحدث انقر () لعناصر تحميل الملفات - تحرير: حتى الآن.

نصائح أخرى

أشك في أنك ستكون قادرا على تنشيط مربع الحوار لأسباب أمنية. الحدث الفني الحقيقي يجب أن يحدث، اعتمادا على المتصفح.

أعرف فلاش / فليكس لديك هذا الشرط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top