使用 jqgrid + jQuery Form Plugin 处理文件上传

最近在处理 jqgrid 的文件上传时,发现难度较大。

按其官方文档上提示,应该在 onInitializeForm 这个 javascript 回调函数中处理,官方文档及论坛都没有提供现成的例子。我们百试不通。

后按 google 上其他人的提示,在 beforeSubmit 这个 javascript 回调函数中,拦截住 form 提交,手工使用 ajaxSubmit 提交 form, 并把原有的提交拦住。这才成功。

 

以下是部分代码,供大家参考。

 

    do_before_submit = function(postdata, formid) {

        var options = {
                url: 'xxxxxx?grid_action=edit_page&oper=add&parent_uuid='+var_last_selected_parent_uuid,
                //dataType: 'json',
                timeout: 10000,
                iframe: true,
                type:'POST',
                forceSync:true,
                target: '#result_div',
                success:onSuccess  // post-submit callback,
               
            };

        //IE 8不认识 json 回应,让它当普通 html 。否则上传文件后会出现下载页面。
            jq.ajaxSetup({
                dataType: "html",
                type: "POST"
            });       
    formid.ajaxSubmit(options);//另外用 ajax form 插件提交 form

 

//告诉 jqgrid 不要提交 form , 因为 jqgrid 不能正确处理 文件上传 form, 并且我们上面调用 ajaxSubmit 已经提交了 form

 return [false,"保存成功"];

 

    }

 

var addOption =  {
        cache: false,
        contentType: "application/json; charset=utf-8",    
        reloadAfterSubmit:true,
        type: "POST",
        dataType: "json",
        afterSubmit: check_status_after_submit,
        beforeSubmit:do_before_submit,
        onInitializeForm:do_initialize_form
    };

    jq("#"+var_tbl_grid_id).navGrid('#'+var_div_grid_nav_id,
            gridNavOptions , //options
            editOption, // edit options
            addOption, // add options
            delOption, // del options
            searchOption // search options
        );

 

运行时,"保存成功"几个字被 jqgrid 当客户端校验失败信息,用红色提示。不过不影响用户使用。

 

可能正确的办法,还是用 onInitializeForm ,只不过我们找不到正解。这算是临时解决办法吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值