W3C的规范,disabled=”disabled”
不能向后台提交,改为readonly = “readonly”
即可
两种提交表单的方式#
$("#addForm").serialize
将表单数据收集成json字符串,name=小红&age=25
的形式
$("#addForm").serializeArray();
以数组形式收集表单数据,这个方法可以通过push方法向结果集中添加数据,如果想提交表单之外的数据,可以用这种方式:
dataParam.push({"name": "specName", "value": specName});
另外:需要在ajax的中设置参数
traditional: true,
Js实现返回上一页并刷新#
self.location=document.referrer
复选框全选,全不选#
1
2
3
4
$('#checkAll').click(function(){
$(".checkSon").prop("checked",this.checked);
});
//用attr不行,因为jq版本问题,复选框最好用prop
copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<input type="number" name="quantity" value="1" min='1' onkeyup="onlyNonNegative(this)" />
//通过2步做到输入的为非负数
//1.去掉多余的小数点
//2.保证只能输入小数点或数字
function onlyNonNegative(obj) {
var inputChar = event.keyCode;
//alert(event.keyCode);
//1.判断是否有多于一个小数点
if (inputChar == 190 ) {//输入的是否为.
var index1 = obj.value.indexOf("." ) + 1 ;//取第一次出现.的后一个位置
if (index1 == 1 ) {//如果第一个值就是点
obj.value = obj.value.replace(/[^\d]/g , '' )
}
var index2 = obj.value.indexOf("." , index1);
while (index2 != -1 ) {
//alert("有多个.");
obj.value = obj.value.substring(0 , index2);
index2 = obj.value.indexOf("." , index1);
}
}
//2.如果输入的不是.或者不是数字,替换 g:全局替换
obj.value = obj.value.replace(/[^\d]/g , '' );
}
copy
选中颜色添加边框,相邻的去除边框#
1
2
3
4
5
6
7
8
9
10
function getColor(obj){
$(obj).siblings('div').removeClass('selected');
$(obj).addClass('selected');
}
规定一个css属性
.selected{
border:3px solid #339999 !important;
}
Html
<div onclick="getColor(this)">
copy
JQ获取选中复选框的值#
本以为:
var arr = $('input[name="ck"]:checked').val();
返回的直接是一个数组,错了。必须
1
2
3
4
5
var checkArr = [];
$('input[name="ck"]:checked' ).each(function(index,i){
checkArr.push(i);
})
console.log("选中的" +checkArr.length);
copy
选中之后遍历,向数组中push
1
2
3
4
5
<tr v-for="business in businessList.list">
<td><input type="checkbox" name="ck" :value="business.id"></td>
<td>{{business.businessName}}</td>
<td>{{business.businessMobile}}</td>
</tr>
copy
JQ ajax向后台传递数组#
因为jQuery需要调用jQuery.param序列化参数,jQuery.param( obj, traditional ),
默认的话,traditional为false,即jquery会深度序列化参数对象,我们可以通过设置traditional 为true阻止深度序列化,然后序列化结果如下:
p: [“123”, “456”, “789”] => p=123&p=456&p=456
随即,我们就可以在后台通过request.getParameterValues()来获取参数的值数组了,
所以,比如我们前台有多个checkbox,js代码可以写成:
1
2
3
4
5
6
7
8
9
10
var values = $("input[type=checkbox]" ).map(function(){
return $(this).val();
}).get();
$.ajax{
url:"xxxx" ,
traditional: true,
data:{
p: values
}
}
copy
td中的内容,超出长度显示省略号#
内容必须包在p标签中
1
2
3
4
5
6
7
8
9
10
11
.msg{
width: 200px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
<td>
<p class="msg">
${(i.message)!''}
</p>
</td>
copy
ajax 提交富文本 数据截断#
富文本中有特殊符号,如:&,富文本的字符串会被截断。
解决方法:
1
2
3
var data = $("#addForm" ).serializeArray();
var content = $.trim($('#summernote' ).summernote('code' ));
data.push({"name" : "content" , "value" : content});
copy
textarea中换行内容保存的数据库#
数据传给后台时处理:
1
replace(/\r\n/g ,'<br/>' ).replace(/\n/g ,'<br/>' ).replace(/\s/g ,' ' );
copy
后台返回给页面时处理:
1
2
.replaceAll ("<br/>" , " " )
``
copy