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