textarea

问题描述:文本区域内容前面会有空格、换行等字符,去除空格处理后存入数据库没有问题,但是读取到页面中还是出现空格、换行。

解决:最初想到的是将光标设置为开始位置:网上找到的兼容IE和FF的方法。

//将光标放在textarea的头部
function locatePoint(id){
    var tea = document.getElementById(id);
    if (tea.setSelectionRange) {
        setTimeout(function() {
            tea.setSelectionRange(0,0); //将光标定位在textarea的开头,需要定位到其他位置的请自行修改
            tea.focus();
        },0);
    }else if (tea.createTextRange) {
        var txt=tea.createTextRange();
        txt.moveEnd("character",0-txt.text.length);
        txt.select();
    }
};

    var remark = "REMARK";
    var memo = "MEMO";
    locatePoint(memo);
    locatePoint(remark);

这样在做tab键切换时会定位到初始位置,但是保存数据库,再读取到页面还是会无故插入空格或换行。

最后百度解决:就是必须写在一行上面。

<textarea rows="2" cols="30" id="MEMO" name="MEMO" ></textarea>

附新浪微博:点击“话题”这个文字按钮后,在输入框文本域里面就会添加一段文字“#请在这里输入自定义话题#”,其中“请在这里输入自定义话题”处于被选中的状态

        var tea = document.getElementById("t");
        tea.setSelectionRange(0,5); //将光标定位在textarea的开头,需要定位到其他位置的请自行修改
        tea.focus();

        var textSelect = function(o, a, b){
            //o是当前对象,例如文本域对象
            //a是起始位置,b是终点位置
            var a = parseInt(a,10), b = parseInt(b,10);//转换成十进制
            var l = o.value.length;
            if(l){
                //如果非数值,则表示从起始位置选择到结束位置
                if(!a){
                    a = 0;
                }
                if(!b){
                    b = l;
                }
                //如果值超过长度,则就是当前对象值的长度
                if(a > l){
                    a = l;
                }
                if(b > l){
                    b = l;
                }
                //如果为负值,则与长度值相加
                if(a < 0){
                    a = l + a;
                }
                if(b < 0){
                    b = l + b;
                }
                if(o.createTextRange){//IE浏览器
                    var range = o.createTextRange();
                    range.moveStart("character",-l);
                    range.moveEnd("character",-l);
                    range.moveStart("character", a);
                    range.moveEnd("character",b);
                    range.select();
                }else{
                    o.setSelectionRange(a, b);
                    o.focus();
                }
            }
        };

        var $ = function(id){
            return document.getElementById(id);
        };

        $("btn").onclick = function(){
            var a = $("a").value;
            var b = $("b").value;
            textSelect($("t"), a, b);
        };
原文地址:https://www.cnblogs.com/colorstory/p/2812541.html