<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>