textarea标签与input标签在移动端用jquery和原生的js都获取不到值
最近做需求发现用ajax向后台提交数据的时候用js与jquery 在移动端都获取不到textarea标签的value值 (在pc端获取值的时候是正常的)
如上面的这种情况 点击提交的时候 用原生的js 或者是jquery 获取不到 textarea 标签 输入的value值
贴上最原始的代码
<h4>请描述您的问题?</h4>
<textarea id="aaa" ></textarea>
<div class="btn_submit" >
<button type="button" onclick="sem_success()">提交</button>
</div>
// 这里是js代码
function sem_success(){
var value= $("#aaa").val();
console.log(value);
}
发现这样是获取不到值的
刚开始反映是不是标签的兼容性的问题 换成input标签的时候 同样也是获取不到数值
然后各种找资料 发现
当input 或者是textarea 标签 没有失去焦点的时候 是获取不到value值 只有当input 或者是textarea 标签 失去焦点的时候 才能正常的获取到value值
于是想了一个办法 点击提交的时候 让输入的文本框失去焦点 如下面的这个代码
function sem_success(){
$("#aaa").blur();// 让文本框失去焦点
var value= $("#aaa").val();
console.log(value);
}
试了一下 最后发现还是不行
最终 想到了 实时监听文本框输入的内容 然后用一个隐藏域吧这个value值给存储起来
贴上 html代码
<h4>请描述您的问题?</h4>
<textarea id="aaa" onkeyup="check_value(this);" ></textarea>
<input type="hidden" name = 'chLeft' id = 'chLeft' value = ''>
<div class="btn_submit" >
<button type="button" onclick="sem_success()">提交</button>
</div>
贴上js代码
function check_value(which){
document.getElementById('chLeft').value = which.value;
}
function sem_success(){
var value= $("#aaa").val();
console.log(value);
}