如何使用krajee携带参数上传?

总所周知,krajee有个 uploadUrl 属性,如果不配置它的话,“upload”按钮在初始化的时候是submit,但如果给这个属性赋了值,那“upload”按钮就是个<a>标签,href就是uploadUrl的属性值。但是一旦这样做,就没法携带参数上传了。

为了解决这个问题,我查看了源码,发现如果配置了uploadUrl属性的话,点击“upload”按钮,是进行的ajax请求,且一定会走如下这个方法。

        _ajaxSubmit: function (fnBefore, fnSuccess, fnComplete, fnError, previewId, index) {
            var self = this, settings, vUrl;
            if (!self._raise('filepreajax', [previewId, index])) {
                return;
            }
            self._uploadExtra(previewId, index);
            self._initAjaxSettings();
            self._mergeAjaxCallback('beforeSend', fnBefore);
            self._mergeAjaxCallback('success', fnSuccess);
            self._mergeAjaxCallback('complete', fnComplete);
            self._mergeAjaxCallback('error', fnError);
            vUrl = index && self.uploadUrlThumb ? self.uploadUrlThumb : self.uploadUrl;
            settings = $.extend(true, {}, {
                xhr: function () {
                    var xhrobj = $.ajaxSettings.xhr();
                    return self._initXhr(xhrobj, previewId, self.getFileStack().length);
                },
                url: self._encodeURI(vUrl),
                type: 'POST',
                dataType: 'json',
                data: self.formdata,
                cache: false,
                processData: false,
                contentType: false
            }, self._ajaxSettings);
            self.ajaxRequests.push($.ajax(settings));
        }

可以在源码里搜一下。

我们可以在这里获取页面的参数,一块带到后台去。

我这里自定义了几个参数。

        _ajaxSubmit: function (fnBefore, fnSuccess, fnComplete, fnError, previewId, index) {
            var self = this, settings, vUrl;
            if (!self._raise('filepreajax', [previewId, index])) {
                return;
            }
            self._uploadExtra(previewId, index);
            self._initAjaxSettings();
            self._mergeAjaxCallback('beforeSend', fnBefore);
            self._mergeAjaxCallback('success', fnSuccess);
            self._mergeAjaxCallback('complete', fnComplete);
            self._mergeAjaxCallback('error', fnError);
            vUrl = index && self.uploadUrlThumb ? self.uploadUrlThumb : self.uploadUrl;
            //自定义参数
			self.formdata.append("extraParam1", $("#extraParam1").val());
			self.formdata.append("extraParam2", $("#extraParam2").val());
			self.formdata.append("extraParam3", $("#extraParam3").val());
			self.formdata.append("extraParam4", $("#extraParam4").val());
			self.formdata.append("extraParam5", $("#extraParam5").val());
			self.formdata.append("extraParam6", $("#extraParam6").val());
            settings = $.extend(true, {}, {
                xhr: function () {
                    var xhrobj = $.ajaxSettings.xhr();
                    return self._initXhr(xhrobj, previewId, self.getFileStack().length);
                },
                url: self._encodeURI(vUrl),
                type: 'POST',
                dataType: 'json',
                data: self.formdata,
                cache: false,
                processData: false,
                contentType: false
            }, self._ajaxSettings);
            self.ajaxRequests.push($.ajax(settings));
        }

然后在页面上配置好相应的ID就好了。后台接收的参数名也需要注意。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值