使用场景:从后台获取list 通过迭代器在jsp页面显示,点击其中一个属性弹出修改数据,点击同事通过ajax获取后台数据,存到弹出框,每次点击获取数据传入弹出框,点击第一个获取成功弹出框数据正确,第二次也成功, 第三次重新点击第一个框 出现第二个框的数据,网上查了很多都说是缓存问题但是调用缓存代码清除不起作用//v2 
$("#myModal").on("hidden", function() {  
  $(this).removeData("modal");  
});  
//v3 
$("#myModal").on("hidden.bs.modal", function() {  
  $(this).removeData("bs.modal"); 
}); 
 /*$(this).find(".modal-content").children().remove(); */

解决方案 »

  1.   

    用一个表单吧,每次执行以下reset方法就ok了
      

  2.   

    表单input内容要清空   要不然上一次数据还是赋值在input里
      

  3.   

    你想下,一个静态的页面,通过请求脚本赋值的,你关掉之后没有初始化(重置),当然东西还在
    可以试试下面的代码,根据不同的页面元素对应的做出初始化    $('.modal').on('hide.bs.modal', function () {
            // $(this).find("form")[0].reset();
            $(this).find("input").each(function (i, obj) {
    var tag = obj.tagName.toLowerCase();
                var t = obj.type;
                //添加单选按钮恢复默认值
    if(t=="radio"){
    if($(obj).attr("checked")=="checked"){
                        $(obj).prop("checked", "checked");
                    }else{
                        $(obj).prop("checked", "");
    }
    }
    else
                 $(obj).val("");
            })
    $(this).find("button.btn-success").removeAttr("disabled");
            $(this).find("select").each(function (i, obj) {
                $(obj).val("-1");
            })
            $(this).find("textarea").each(function (i, obj) {
                $(obj).val("");
            })
        });
    不过你的有点奇怪,你3次请求的地址都是一样的把,只要返回有数据应该都可以正确赋值
      

  4.   

    请求的url是一样的吗? 检测下是否是服务器端缓存了数据