表单

<texttarea>指定文本框的大小使用rows和cols,rows是文本框的字符行数,cols是字符列数,<texttarea>的初始值必须放在<texttarea></texttarea>之间。

<textarea>不能再html中给<texttarea>指定最大字符数

建议使用value属性读取或设置文本框的值,不建议使用DOM方法。不要使用setAttribute设置<input?>的value特性,也不要去修改<texttarea>的第一个子节点,因为value属性所作的修改,不一定回复暗影在DOM中,因此,在处理文本框的值时,最好不要使用DOM方法

 

选择文本框

html
<form id="form"> <input type="button" id="btn" value="hello"/> <input type="text" autofocus id="text1"/> <input type="text" autofocus id="text2"/> <input type="text" autofocus name="textbox1"/> <textarea cols="2" role="2">sdf</textarea> </form>

  

javascript

 //选择文本

        var textbox = document.forms[0].elements[1];
 
        EventUtil.addHandler(textbox,'focus',function(event) {
            event = EventUtil.getEvent();
            var target = EventUtil.getTarget(event);
            target.select();
        })

  selectionStart

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<form id="form">
    <input type="button" id="btn" value="hello"/>
    <input type="text" id="text1" value="12312312312"/>
    <input type="text"   id="text2"/>
    <input type="text"   name="textbox1"/>

    <textarea cols="2" role="2">sdf</textarea>
</form>
<select id="province">
    <option value="-1">省</option>
    <option value="0">北京</option>
    <option value="1">浙江</option>
</select>
<select id="city">
</select>
<script>
    var EventUtil = {
        addHandler: function (element, type, handler) {
            if (element.addEventListener) {
                element.addEventListener(type, handler, false);
            } else if (element.attachEvent) {
                element.attachEvent("on" + type, handler);
            } else {
                element["on" + type] = handler;
            }
        },
        removeHandler: function (element, type, handler) {
            if (element.removeEventListener) {
                element.removeEventListener(type, handler, false);
            } else if (element.detachEvent) {
                element.detachEvent("on" + type, handler);
            } else {
                element["on" + type] = null;
            }
        },

        getEvent: function (event) {
            return event ? event : window.event;
        },
        getTarget: function (event) {
            return event.target || event.srcElement;
        },
        preventDefault: function (event) {
            if (event.preventDefault) {
                event.preventDefault();
            } else {
                event.returnValue = false;
            }
        },
        stopPropagation: function (event) {
            if (event.stopPropagation) {
                event.stopPropagation();
            } else {
                event.cancelBubbles = true;
            }
        },
        getRelatedTarget: function (event) {
            if (event.relatedTarger) {
                return event.relatedTarget;
            } else if (event.toElement) {
                return event.toElement;
            } else if (event.fromElement) {
                return event.fromElement;
            } else { return null; }
        }
    };
    window.onload = function() {
   

        //选择文本
 
        var f = document.forms[0].elements[1];
        var text2 = document.getElementById('text2');
        function getSelectedText(textbox) {
            return textbox.value.substring(textbox.selectionStart,textbox.selectionEnd);
 

        }
        f.addEventListener('select',function(){
            text2.value = getSelectedText(f)
        }, false);


    }
</script>
</body>
</html>

  上面的在IE7就会报错,可以这么写js

javascript
    var f = document.forms[0].elements[1];
var text2 = document.getElementById('text2');
function getSelectedText(textbox) {
// return textbox.value.substring(textbox.selectionStart,textbox.selectionEnd);
if (typeof textbox.selectionStart == 'number') {
return textbox.value.substring(textbox.selectionStart,textbox.selectionEnd);
} else if (document.selection) {
return document.selection.createRange().text;
}
}
f.onselect = function(){
text2.value = getSelectedText(f)
}

  

        事件过滤,所有按键都被屏蔽,文本框变成了只读
        var f = document.forms[0].elements[1];
                EventUtil.addHandler(f,'keypress',function(event) {
            event = EventUtil.getEvent(event);
//            EventUtil.preventDefault(event);
            var target = EventUtil.getTarget(event);
            var charCode = EventUtil.getCharCode(event);
            if(!/\d/.test(String.fromCharCode(charCode)) && charCode > 9) {
                EventUtil.preventDefault(event);
            }
        });

  自动切换焦点,比如电话号码输入的时候有区号

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<form id="form">
    <input type="button" id="btn" value="hello"/>
    <input type="text" id="text1" value=""/>
    <input type="text" id="text2"/>
    <input type="text" name="textbox1"/>

    <textarea cols="2" role="2">sdf</textarea>
    <input type="text" id="txtTel1" name="tel1" maxlength="3" required/>
    <input type="text" id="txtTel2" name="tel2" maxlength="3"/>
    <input type="text" id="txtTel3" name="tel3" maxlength="4"/>
</form>
<select id="province">
    <option value="-1">省</option>
    <option value="0">北京</option>
    <option value="1">浙江</option>
</select>
<select id="city">
</select>

<script>
    var EventUtil = {
        addHandler: function (element, type, handler) {
            if (element.addEventListener) {
                element.addEventListener(type, handler, false);
            } else if (element.attachEvent) {
                element.attachEvent("on" + type, handler);
            } else {
                element["on" + type] = handler;
            }
        },
        removeHandler: function (element, type, handler) {
            if (element.removeEventListener) {
                element.removeEventListener(type, handler, false);
            } else if (element.detachEvent) {
                element.detachEvent("on" + type, handler);
            } else {
                element["on" + type] = null;
            }
        },

        getEvent: function (event) {
            return event ? event : window.event;
        },
        getTarget: function (event) {
            return event.target || event.srcElement;
        },
        preventDefault: function (event) {
            if (event.preventDefault) {
                event.preventDefault();
            } else {
                event.returnValue = false;
            }
        },
        stopPropagation: function (event) {
            if (event.stopPropagation) {
                event.stopPropagation();
            } else {
                event.cancelBubbles = true;
            }
        },
        removehandler: function(element,type,handler){
            if(element.removeEventListenter){
                element.addEventListenter(type,handler,false);
            }else if(element.detachEvent){
                element.detachEvent("on"+type,handler);
            }else{
                element["on" +type] = null;
            }
        },
        getRelatedTarget: function (event) {
            if (event.relatedTarger) {
                return event.relatedTarget;
            } else if (event.toElement) {
                return event.toElement;
            } else if (event.fromElement) {
                return event.fromElement;
            } else { return null; }
        },
        getCharCode: function(event){
            if (typeof event.charCode == "number"){
                return event.charCode;
            } else {
                return event.keyCode;
            }
        }
    };
    window.onload = function() {
 

//        自动切换焦点

        (function () {
            function tabForward(event){     //event事件对象传到事件处理程序中去
                event = EventUtil.getEvent(event);    //把event传给getEvent()方法
                var target = EventUtil.getTarget(event);

                if(target.value.length == target.maxLength) {    //达到最大长度
                    var form = target.form;

                    for(var i=0, len=form.elements.length; i<len-1; i++)
                    {
                        if(form.elements[i] == target){
                            form.elements[i+1].focus();  //切换焦点
                            return;
                        }
                    }
                }
            }
            var textBox1 = document.getElementById('txtTel1');
            var textBox2 = document.getElementById('txtTel2');
            var textBox3 = document.getElementById('txtTel3');
            EventUtil.addHandler(textBox1,'keyup',tabForward);
            EventUtil.addHandler(textBox2,'keyup',tabForward);
            EventUtil.addHandler(textBox3,'keyup',tabForward);


        })();
    }
</script>
</body>
</html>

  

posted @ 2017-04-20 14:46  shenq2014  阅读(169)  评论(0编辑  收藏  举报