javascript - jQuery:点击div后打开文件上传窗口

标签 javascript jquery css file-upload

我使用(Css 2.1 和 Jquery)来设置文件输入的样式

一切都很好,现在一切都很好

这是我正在谈论的示例

Input File Demo

如果您使用的是 Firefox,一切正常

但是使用 Chrome 时无法从第一次选择文件 我的问题

要在此演示中选择文件,它位于简历旁边

这是我的 JQuery 代码

(function($){
              $.fn.SafyForm = function(){
                   $(".safy_input_file").live("click", function(){
                                     var obj = $(this) ;
                                     obj.prev("input[type=file]").click() ;
                                     obj.prev("input[type=file]").change(function(){
                                         var txt = $(this).val();
                                         obj.children("span").text(txt) ;
                                     });
                   }) ;
                   return this.each(function(){
                         if($(this).is("input[type=file]"))
                                {
                                  $(this).hide().after('<div class="safy_input_file"><span> [ .docx & .doc & .pdf & .rar ] </span><label>اختار ملف</label></div>')
                                }
                   }) ;
              }
        })(jQuery);

        $(document).ready(function(){
              $('input[type=file]').SafyForm() ;
        }) ;

更新后的代码

(function($){
              $.fn.SafyForm = function(){
                   $(".safy_input_file").live("click",function(){
                                     var obj = $(this) ;
                                     obj.prev("input[type=file]").click() ;

                   }) ;

                   $("input[type=file]").change(function(){
                            var txt = $(this).val();
                            var safyobj = $(this).next('.safy_input_file') ;
                            safyobj.children("span").text(txt) ;
                   });

                   return this.each(function(){
                         if($(this).is("input[type=file]"))
                                {
                                  $(this).hide().after('<div class="safy_input_file"><span> [ .docx & .doc & .pdf & .rar ] </span><label>اختار ملف</label></div>')
                                }
                   }) ;
              }
        })(jQuery);

        $(document).ready(function(){
              $('input[type=file]').SafyForm() ;
        }) ;

最佳答案

你说得对,在chrome中运行了两次上传。 我在 fiddle 中测试了你的插件:

http://jsfiddle.net/EPxkh/61/

并且是正确的(运行 1 次)。 问题一定出在您的其他网页元素或脚本中。

也尝试改变:

input[type=file]

:file

关于javascript - jQuery:点击div后打开文件上传窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12802937/

相关文章:

javascript - contenteditable div 中突出显示的文本 : Get the start and the end of the highlighted text

css - 在此示例中,如何将图像居中放置在另外两个图像之间?

javascript - 使用 css 或 jquery 的粘性页脚

javascript - 如何识别加载了一个js文件?

javascript - 如何使用 webpack 生成唯一的文件名?

javascript - 按顺序订阅所有可观察量,然后在所有完成后将值作为数组发出

jquery - Ajax 安全问题和可能的攻击

javascript - 获取用户点击对象的 DOM

jquery - 返回数据 ajax 超过 2 个值

javascript - <选项> 的图像在 IE 中不起作用