踩得一些坑

SpringMVC

  • SpringMVC是可以不设置返回值的,但是需要添加@Responsebody注解,否则会当作视图解析器

JS数据丢失精度

  • JS处理后台返回的Long型数据精度丢失:ID数据,无论是数据库,后端,前端,设置为String就行了!!

操作多选下拉框

<select id="test" multiple="true">
    <option value="option-A">option-A</option>  
    <option value="option-B">option-B</option>
    <option value="option-C">option-C</option> 
    <option value="option-D">option-D</option>
</select>
function fun(){
    var select = document.getElementById("test");
    var str = [];
    for(i=0;i<select.length;i++){
        if(select.options[i].selected){
            str.push(select[i].value);
        }
    }
    alert(str);
}

iframe子页面获取后端数据

  • 后端返回的是父页面,父页面中通过ifream标签引入子页面。
  • 可以在父页面的隐藏域或者JS变量中临时存储后端传来的数据
  • 子页面再获取父页面中的内容即可
//controller中返回的是父页面,将数据保存,用于子页面调用数据
window.types = [[${types}]]
window.tags = [[${tags}]]
window.blog = [[${blog}]]
window.tagIds = [[${tagIds}]]
//子页面
let types = parent.window.types;
let tags = parent.window.tags;
let blog = parent.window.blog;
let tagIds = parent.window.tagIds;

iframe子页面提交表单后,页面嵌套在子页面显示了

1、问题描述

  • 子页面中有一个form表单,提交给后台
  • 后台处理数据后,返回页面,会在当前iframe子页面中嵌套显示
  • 若后台不返回值,通过前端来处理:在表单提交后,修改url,此方法不可取,表单提交后的js代码执行会有BUG

2、问题产生图解

在这里插入图片描述

3、问题产生原因

  • form表单的target属性值,默认为 _self,即,表单提交后,默认回到当前浏览器窗口显示数据。
  • target属性的取值:
    • _blank 将返回信息显示在新开的浏览器窗口中
    • _parent 将返回信息显示在父级浏览器窗口中
    • _self 将返回信息显示在当前浏览器窗口中
    • _top 将返回信息显示在顶级浏览器窗口中
    • framename:比如本页面中有另一个 < iframe name=“PageShow” > 则就在这个框架中打开。

Ajax

ajax是异步请求,在回调函数中无法直接修改全局变量的值,JS会顺序执行,不会等待异步请求中的修改,可以修改async属性为false,表示同步,会等待请求执行后,再执行下面的JS代码

Enter自动提交表单

当一个表单中,只有一个input标签,回车键会自动触发提交表单事件
若添加一个 hidden 的input标签也是不行的
可以添加一个其他类型的input,style设置为display=none

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值