问题1:js写入值/属性
1. document.getElementById("password").value;
2. $("#pgcsxx").val("aaaaaaaa");
3. $("#pgcsxx").attr("value","hahah");
4. $("#pgcsxx").html("hahah");
问题2:input输入框输入表情无法存入数据库
**原因简介:**在数据库中字段的字符集是utf-8,在MySQL中,utf-8(varchar)只支持1-3个字符的存储,而表情是四个字符。
解决办法:
方法1. 将需要存表情的字段编码改成utf-8mb4
方法2. 转码
/* 该方法的功能是自动检测出字符串中的表情,然后转码再返回字符串,表情部分将会被转码成 &#xxxx; 形式的实体字符,用来存入数据库,
取出来的时候仍然是表情,取出来放回页面时候建议使用 $("#pgcsxx").html("hahah"); */
function utf16toEntities(str) {
var patt = /[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则
str = str.replace(patt, function(char) {
var H, L, code;
if (char.length === 2) {
H = char.charCodeAt(0);
// 取出高位
L = char.charCodeAt(1);
// 取出低位
code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00;
//转换算法
return "&#" + code + ";";
} else {
return char;
}
});
return str;
}
问题3:字符串过长,用省略号代替
效果:
实现方式: 通过css的方式实现
<div style="width:150px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis"></div>
四个属性都需要有,width的值可以适当调整。
问题4:通过禁用div禁用所有输入框
div禁用——添加样式style={pointer-events: none;}
(未完待续)