2

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

它工作得很好,到现在一切都很好

这是我正在谈论的示例

输入文件演示

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

但是当使用 Chrome 时 无法从第一次选择文件 My Problem

在此演示中选择文件它在Cv旁边

这是我的 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() ;
        }) ;
4

1 回答 1

2

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

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

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

也尝试改变:

输入[类型=文件]

:文件

于 2012-10-09T16:25:08.050 回答