zoukankan      html  css  js  c++  java
  • js动态绑定数据的闭包问题

    以文件上传举例,循环绑定数据时只显示第一个固定数据

    解决方案:

    后台循环得到siteId和examinationRoomId数值,按钮采用拼接方法显示在页面上

    e.setUploadCheckinRecord("<input type='file' id='btn_file' style='display:none' onchange = 'ExaminationRecords.aa()'>"+
    "<button class='btn btn-primary' onclick=ExaminationRecords.uploadCheckinRecord(" +siteId+ ","+examinationRoomId+")>上传考场照片</button>");

    js函数

    使用button的点击事件接收数据并定义为全局变量,input框使用onchange事件触发函数

    ExaminationRecords.aa=function(){
        var obj =document.getElementById("btn_file");
        var len = obj.files.length;
        var fileName;
        for (var i = 0; i < len; i++) {
            fileName = obj.files[i].name;
        }
        var con=confirm("确定上传"+fileName+"吗?");
        if(con==true){
             var formData = new FormData();
            formData.append('file',$('#btn_file')[0].files[0]);
            formData.append('siteId',sId);
            formData.append('examinationRoomId',eId);
            console.log(eId);
            $.ajax({
                url:'/examinationRecords/uploadCheckinRecord',
                type:'post',
                processData:false,
                contentType:false,
                data:formData,
                success:function (data) {
                    Feng.success("上传成功!");
                    ExaminationRecords.table.refresh();
                },
                error:function(data){
                    Feng.error("上传失败!" + data.responseJSON.message + "!");
                }
            })
        }
    };
    
    ExaminationRecords.uploadCheckinRecord=function(siteId,examinationRoomId){
        document.getElementById("btn_file").click();
        sId = siteId;
        eId = examinationRoomId;
    };

    完美解决,请自动忽略那该死的aa函数名,哈哈

    解决思路:定义全局变量进行抛出

  • 相关阅读:
    数字图像-概述
    Python-python打包编译成pyd或者.so,保护代码。
    计算机组成原理-概述
    9大开源云管理平台(CMP)
    计算机组成原理-CPU-CPU知识科普:秒懂主频、核心、线程、缓存、架构详解
    svn git协同管理
    DEVTMPFS
    关于flash擦除的方法
    SQLServer强制保存
    360极速浏览器无法正确getHours
  • 原文地址:https://www.cnblogs.com/xiaowangxiao/p/11550283.html
Copyright © 2011-2022 走看看