Javascript & DOM 中的文本框textbox

表单元素
1、文本框textbox
文本框有两种形式一种是 单行文本框<input type=”text” /> 一种是多行文本域<textarea />
使用文本输入框的时候可以限定输入字符的长度,以及文本框的长度,还有设置默认的值
<input type=”text” size=”25” maxlength=”50” value=”initial value” />
使用文本域的时候可以设置多少行多少列,以及初始值。(strict.dtd中行列数必须设定)
<textarea rows=”25” cols=”5”>initial value</textarea>

2、获取|改变文本框的值
可以看一下这个例子,通过id来获取文本框,然后获取value属性的值
<html>
<head>
<title>Retrieving a Textbox Value Example</title>
<script type=”text/javascript”>
function getValues() {
var oTextbox1 = document.getElementById(“txt1”);
var oTextbox2 = document.getElementById(“txt2”);
alert(“The value of txt1 is /”” + oTextbox1.value + “/”/n” +
“The value of txt2 is /”” + oTextbox2.value + “/””);
}
</script>
</head>
<body>
<input type=”text” size=”12” id=”txt1” /><br />
<textarea rows=”5” cols=”25” id=”txt2”></textarea><br />
<input type=”button” value=”Get Values” οnclick=”getValues()” />
</body>
</html>

下面这个例子可以获取文本框的字符串的长度。
<html>
<head>
<title>Retrieving a Textbox Length Example</title>
<script type=”text/javascript”>
function getLengths() {
var oTextbox1 = document.getElementById(“txt1”);
var oTextbox2 = document.getElementById(“txt2”);
alert(“The length of txt1 is “ + oTextbox1.value.length + “/n”
+ “The length of txt2 is “ + oTextbox2.value.length);
}
</script>
</head>
<body>
<input type=”text” size=”12” id=”txt1” /><br />
<textarea rows=”5” cols=”25” id=”txt2”></textarea><br />
<input type=”button” value=”Get Lengths” οnclick=”getLengths()” />
</body>
</html>

3、选中文本Select(),这两种文本框都支持select()方法,以选中所用文本,在使用select()之前,先要使它获得焦点focus()。虽然并非所有浏览器都要求这么做,但这样做毫无疑问是安全的。可以按以下示例,点击SelectText按钮获取 txt1文本框的值。

<html>
<head>
<title>Select Text Example</title>
<script type=”text/javascript”>
function selectText() {
var oTextbox1 = document.getElementById(“txt1”);
oTextbox1.focus();
oTextbox1.select();
}
</script>
</head>
<body>
<input type=”text” size=”12” id=”txt1” value=”initial value” /><br />
<input type=”button” value=”Select Text” οnclick=”selectText()” />
</body>
</html>

4、 文本框的事件有两个  onchange() 和onselect()
onchange()事件发生在文本框对象失去焦点的时候,检查文本是否改变。
onselect()事件发生在选中一个或多个文本的时候,以及手动调用select()方法时

从以下可以看得出 失去焦点事件发生在 onchange事件之前了。
<input type=”text” name=”textbox1” value=””
οnblur=”alert(‘Blur’)” οnchange=”alert(‘Change’)”/>
<input type=”text” name=”textbox1” value=”” οnselect=”alert(‘Select’)”/>

5、自动选中文本
很简单当文本框对象获得焦点的时候,调用this.select()方法即可
<input type=”text” οnfοcus=”this.select()” />
<textarea οnfοcus=”this.select()”></textarea>

只需改动一小部分就可以让这个方法应用于表单中所有 文本框和文本域
先获得文档中所有的 input标签跟 textarea标签,遍历input数组 如果类型为text 文本框则添加onfocus()事件 选中文本。再遍历文本域数组。
FormUtil.setTextboxes = function() {
var colInputs = document.getElementsByTagName(“input”);
var colTextAreas = document.getElementsByTagName(“textarea”);
for (var i=0; i < colInputs.length; i++){
if (colInputs[i].type == “text” || colInputs [i].type == “password”) {
colInputs[i].onfocus = function () { this.select(); };
}
}
for (var i=0; i < colTextAreas.length; i++){
colTextAreas[i].onfocus = function () { this.select(); };
}
};

6、自动跳转Tab forward automatically
在文本框中输入文本时,onkeyup检查是否到了最大限制字符数,譬如4,如果输满了4个字符则自动跳转到下一个文本框,就像我们按Tab键一样,使得下一个表单元素获得焦点。


FormUtil.tabForward = function(oTextbox) {
var oForm = oTextbox.form;
//确认当前文本框不是最后一个,且这个文本框内容达到最大数的限制
if (oForm.elements[oForm.elements.length-1] != oTextbox
&& oTextbox.value.length == oTextbox.getAttribute(“maxlength”)) {

//遍历表单元素数组,确定该元素所在的位置
for (var i=0; i < oForm.elements.length; i++) {
if (oForm.elements[i] == oTextbox) {

//找到索引位置之后,查看下一个元素是否为隐藏域,如果不是则下一个元素获得焦点。
for(var j=i+1; j < oForm.elements.length; j++) {
if (oForm.elements[j].type != “hidden”) {
oForm.elements[j].focus();
return;
}
}
return;
}
}
}
};

///这里是如何条用自动跳转

<input type=”text” id=”txtAreaCode” maxlength=”3”
οnkeyup=”FormUtil.tabForward(this)” />
<input type=”text” id=”txtExchange” maxlength=”3”
οnkeyup=”FormUtil.tabForward(this)” />
<input type=”text” id=”txtNumber” maxlength=”4”
οnkeyup=”FormUtil.tabForward(this)” />

7、限制文本域textarea的内容长度
<textarea rows=”10” cols=”25” maxlength=”150”></textarea>

8、防止输入非法字符
这里使用的方法是使用一个自定义属性invalidchars 然后使用DOM  getAttribute方法获取该属性值,然后过滤掉这些字符。
<input type=”text” invalidchars=”0123456789” />

TextUtil.blockChars = function (oTextbox, oEvent) {
oEvent = EventUtil.formatEvent(oEvent);
var sInvalidChars = oTextbox.getAttribute(“invalidchars”);
var sChar = String.fromCharCode(oEvent.charCode);
var bIsValidChar = sInvalidChars.indexOf(sChar) == -1;
return bIsValidChar || oEvent.ctrlKey;
};

<input type=”text” invalidchars=”0123456789”
οnkeypress=”return TextUtil.blockChars(this, event) “ />
<textarea rows=”10” cols=”25” invalidchars=”0123456789”
οnkeypress=”return TextUtil.blockChars(this, event)” />

9、禁止粘贴,onpaste   ctrl+v以及右键菜单的粘贴
<input type=”text” οnkeypress=”return allow(this, event) “ validchars=”0123456789”
οnpaste=”return false” οncοntextmenu=”return false” />

10、失去焦点时验证
以上验证的方法比较频繁不可取还是使用onblur()比较好了,呵呵

表单验证一般都是验证文本框了

总结:本文主要讲解了文本框的一些用法
1、两种文本框textbox,一种<input type="text" /> 一种<textarea></textarea>
2、如何获取文本框的值var oTextbox1 = document.getElementById(“txt1”);   oTextbox1.value
3、如何选中文本select()
4、文本框的事件onchange() 和 onselect()
5、自动选中文本
6、自动跳转到下一个表单元素
7、限制文本框(域)最大字符数
8、防止输入非法字符
9、禁止粘贴
10、失去焦点时验证|过滤字符串。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值