当前位置: 首页 > 知识库问答 >
问题:

Jquery如何调用数组内部的filter函数

杜辉
2023-03-14

Im在这段代码中使用了两个函数。用户可以通过点击“+”按钮上传图片。他们也可以通过点击“-”按钮移除图像。但文件上载功能对新行不起作用。用户不能选择任何文件,这些文件不显示在HTML中。请检查我的jsfiddle链接并帮助我。https://jsfidle.net/mhmdsohail/6mee3l8t/14/

var max_fields3 = 10; //maximum input boxes allowed
var wrapper3 = $("#portfoliodocs"); //Fields wrapper
var add_button3 = $(".addmore_doc"); //Add button ID

var x = 1; //initlal text box count
$(add_button3).click(function (e) { //on add input button click
    e.preventDefault();
    if (x < max_fields3) { //max input box allowed
        x++; //text box increment
        $(wrapper3).append('<div class="form-group label-floating is-empty onerow portwidth2"><div class="socialmediaside2"><input type="text" class="form-control" name="portfoliodoctitle[]" maxlength="10" value="" placeholder="Document Title"><div class="jFiler jFiler-theme-default"><input type="file" class="docupload" name="portfoliodoc[]" accept="application/pdf, application/doc, application/docx" style="position: absolute; left: -9999px; top: -9999px; z-index: -9999;"><div class="jFiler-input"><div class="jFiler-input-caption"><span>Choose files To Upload</span></div><div class="jFiler-input-button">Choose Files</div></div></div></div><button type="button" class="btn btn-default btn-sm bckbtn remove_field3"><i class="fa fa-trash-o" aria-hidden="true">-</i></button></div>'); //add input box  
     }
}); 
$(wrapper3).on("click", ".remove_field3", function (e) { //user click on remove text
    e.preventDefault();
    $(this).parent('div').remove();
    x--;
});
-------------------------------------------
$('.docupload').filer({ //I have to change in here
    limit: 12
    , maxSize: 2
    , fileMaxSize: 1
    , extensions: ["jpg", "png", "gif"]
    , showThumbs: true
    , addMore: true
    , allowDuplicates: false
    , canvasImage: true
    , templates: {
        box: '<ul class="jFiler-items-list jFiler-items-grid"></ul>'
        , item: '<li class="jFiler-item">\
                    <div class="jFiler-item-container">\
                        <div class="jFiler-item-inner">\
                            <div class="jFiler-item-thumb">\
                                <div class="jFiler-item-status"></div>\
                                <div class="jFiler-item-thumb-overlay">\
                                    <div class="jFiler-item-info">\
                                        <div style="display:table-cell;vertical-align: middle;">\
                                            <span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name}}</b></span>\
                                            <span class="jFiler-item-others">{{fi-size2}}</span>\
                                        </div>\
                                    </div>\
                                </div>\
                                {{fi-image}}\
                            </div>\
                            <div class="jFiler-item-assets jFiler-row">\
                                <ul class="list-inline pull-left">\
                                    <li>{{fi-progressBar}}</li>\
                                </ul>\
                                <ul class="list-inline pull-right">\
                                    <li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\
                                </ul>\
                            </div>\
                        </div>\
                    </div>\
                </li>'
        , itemAppend: '<li class="jFiler-item">\
                        <div class="jFiler-item-container">\
                            <div class="jFiler-item-inner">\
                                <div class="jFiler-item-thumb">\
                                    <div class="jFiler-item-status"></div>\
                                    <div class="jFiler-item-thumb-overlay">\
                                        <div class="jFiler-item-info">\
                                            <div style="display:table-cell;vertical-align: middle;">\
                                                <span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name}}</b></span>\
                                                <span class="jFiler-item-others">{{fi-size2}}</span>\
                                            </div>\
                                        </div>\
                                    </div>\
                                    {{fi-image}}\
                                </div>\
                                <div class="jFiler-item-assets jFiler-row">\
                                    <ul class="list-inline pull-left">\
                                        <li><span class="jFiler-item-others">{{fi-icon}}</span></li>\
                                    </ul>\
                                    <ul class="list-inline pull-right">\
                                        <li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\
                                    </ul>\
                                </div>\
                            </div>\
                        </div>\
                    </li>'
        , progressBar: '<div class="bar"></div>'
        , itemAppendToEnd: false
        , canvasImage: true
        , removeConfirmation: true
        , _selectors: {
            list: '.jFiler-items-list'
            , item: '.jFiler-item'
            , progressBar: '.bar'
            , remove: '.jFiler-item-trash-action'
        }
    }
    , dialogs: {
        alert: function (text) {
            return alert(text);
        }
        , confirm: function (text, callback) {
            confirm(text) ? callback() : null;
        }
    }
    , captions: {
        button: "Choose Files"
        , feedback: "Choose files To Upload"
        , feedback2: "files were chosen"
        , drop: "Drop file here to Upload"
        , removeConfirmation: "Are you sure you want to remove this file?"
        , errors: {
            filesLimit: "Only {{fi-limit}} files are allowed to be uploaded."
            , filesType: "Only Images are allowed to be dddduploaded."
            , filesSize: "{{fi-name}} is too large! Please upload file up to {{fi-maxSize}} MB."
            , filesSizeAll: "Files you've choosed are too large! Please upload files up to {{fi-maxSize}} MB."
        }
    }
});

共有2个答案

贺雪松
2023-03-14

您需要使用现有的HTML而不是在jQuery中编写新的HTML。请研究一下jquery和JavaScript中的克隆。

$(wrapper3).append($('#portfoliodocs .form-group').first().clone(true)); //add input box  

只需克隆现有节点并追加到父节点中即可。

这里我更新你的代码。

松元明
2023-03-14

这可能是因为filer初始化只是在执行$('.docupload')选择器时将其函数绑定到选择器的结果。因此您随后添加的任何.docupload元素都没有绑定到它的filer函数。尝试在add事件中移动filter初始化,这样,无论何时添加新的文件上载项,该函数都将绑定到新创建的html元素。

演示

 类似资料:
  • 问题内容: 这听起来对你们中的几个人来说很容易,但是我什至无法弄清楚为什么我即使在收到很多帖子后也无法获得返回值:( 现在如果我打电话; 它给了我不确定的:(当方法内部计数正确时,即服务运行正常。 问题答案: 那是因为调用是异步的。 如果您将代码编辑为以下内容: 然后,当您调用它时:

  • 问题内容: 对于测试,我使用jest和react-test-renderer。测试应该很简单,但是我很难找到合适的例子。我试图做这样的事情(通常我将功能保存在单独的文件中): utils.js utils.test.js 片段 const childFunction = jest.fn(); 绝对行不通。调用时,parentFunction的主体仅关心其自身的作用域。但是,如果我导入childFu

  • 问题内容: 我有一些代码,其结构类似于此 问题是它向我吐了一个错误。 解析错误:语法错误,意外的T_LNUMBER,预期的T_VARIABLE或’$’ 有关于如何在bbcode函数的preg_replace内调用embed_video的想法吗? 谢谢! 问题答案: 您可以在上使用“ e”修饰符(请参见模式修饰符) 告诉将第二个参数视为PHP代码。

  • 本文向大家介绍python 内置函数filter,包括了python 内置函数filter的使用技巧和注意事项,需要的朋友参考一下 python 内置函数filter filter(func,iterator)     func:自定义或匿名函数中所得值是布尔值,true将保留函数所取到的值,false则取反。     iterator:可迭代对象。 例:      过滤列表['text_test

  • 问题内容: 我正在为node.js代码编写一些单元测试,并且使用Sinon通过以下方式存根函数调用 该是这样的 对于诸如这样的用例,模拟显然可以工作,但是我想知道如何在使用时在anotherF()内部模拟myFunction()调用? 问题答案: 您可以稍微重构一下模块。像这样。

  • 问题内容: 我试图从jQuery的.ajax()函数调用servlet。 目前,我认为我什至没有在调用servlet或将参数传递给它,但是许多Googling似乎并没有帮助。有任何想法吗? 这是我的html: 邮件加载 还有我的web.xml Servlet只是目前的模板: 问题答案: 这里有几个问题: 您正在调用System.out.println,它只是将输出发送到标准输出-而不是发送到浏览器