整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript 控制文本框和文本域

本框是表单中与用户打交道最多的元素之一,它包括单行文本框<input type="text">和多行文本框<textarea>,

更广义的还可以包括密码输入框<input type="password">。

控制用户输入字符个数

对于单行文本框<input type="text">和密码输入框<input type="password">而言,可以利用自身的maxlength属性控制用户输入字符的个数;

<input type="text" name="name" id="name" class="txt" value="姓名" maxlength="10"/>

而对于多行文本框<textarea>没有类似的属性,可以自定义类似的属性,并对onkeypress事件做相应的处理

<textarea name="comments" id="comments" cols="40" rows="4" maxlength="50" onkeypress="return LessThan(this);"></textarea/>

以上代码中maxlength为自定义属性(<textarea>标签中没有这个maxlength属性),其值为最多允许输入的字符的个数,

在onkeypress事件发生时则调用返回LessThan()函数的返回值,函数如下:

function LessThan(oTextArea){
//返回文本框字符个数是否符号要求的boolean值
return oTextArea.value.length < oTextArea.getAttribute("maxlength");
}

实例:

<html>
<head>
<title>控制textarea的字符个数</title>
<style>
<!--
form{
padding:0px;
margin:0px;
font:14px Arial;
}
input.txt{ /* 文本框单独设置 */
border: 1px inset #00008B;
background-color: #ADD8E6;
}
input.btn{ /* 按钮单独设置 */
color: #00008B;
background-color: #ADD8E6;
border: 1px outset #00008B;
padding: 1px 2px 1px 2px;
}
-->
</style>
<script language="javascript">
function LessThan(oTextArea){
//返回文本框字符个数是否符号要求的boolean值
return oTextArea.value.length < oTextArea.getAttribute("maxlength");
}
</script>
</head>
<body>
<form method="post" name="myForm1" action="addInfo.aspx">
<p><label for="name">请输入您的姓名:</label>
<input type="text" name="name" id="name" class="txt" value="姓名" maxlength="10"></p>
<p><label for="comments">我要留言:</label><br>
<textarea name="comments" id="comments" cols="40" rows="4" maxlength="50" onkeypress="return LessThan(this);"></textarea></p>
<p><input type="submit" name="btnSubmit" id="btnSubmit" value="Submit" class="btn">
<input type="reset" name="btnReset" id="btnReset" value="Reset" class="btn"></p>
</form>
</body>
</html>

设置鼠标经过时自动选择文本

通常是在用户名、密码等文本框中希望鼠标指针经过时自动聚焦,并且能够选中默认值以便用户直接删除。

首先是鼠标指针经过时自动聚焦,代码如下

onmouseover="this.focus()"

其次是聚焦后自动选中所有文本,代码如下:

onfocus="this.select()"
如:<label for="name">请输入您的姓名:</label>
<input type="text" name="name" id="name" class="txt" value="姓名" onmouseover="this.focus()" onfocus="this.select()">

javascript分离实现自动选择文本

定义一个带圆角的Textbox,没有用win32 Api,相对比用Api要好一点。注意窗口AutoScaleMode设置为None.

满足以下2个条件时;

浏览器会自动记录输入过的值;

当用户再次输入的时候就能自动完成;

1:input标签在form标签下;

2:点击了此form标签下的submit按钮;

具体的表现形式如下图;

浏览器自动显示输入过的值后会遮挡到下面的验证码;

对于我这种记性差到即便只有这4个数字都懒得记;

非要边看着验证码边输入的人是无法忍受的;

额;好吧;我承认记性是躺枪的;主要是懒;

如果说验证码这个示例你能忍受的话;

那么下面这张图肯定是无法忍的了;

这个搜索框有一个ajax 事件了;

当输入内容后会发送异步请求搜索商品;

但是浏览器的自动显示的输入记录就会遮挡后边的搜索结果;

解决这个情况的方法是为input标签添加autocomplete属性并设为off

<input class="text" autocomplete="off" type="text" name="word" value="输入商品名称">

顺便介绍下autocomplete;

autocomplete是HTML5 中的新属性它规定表单是否应该启用自动完成功能。自动完成允许浏览器预测对字段的输入。当用户在字段开始键入时,浏览器基于之前键入过的值,应该显示出在字段中填写的选项。

值描述

  1. on默认。规定启用自动完成功能。
  2. off规定禁用自动完成功能。