文本域长度限制

今儿个给表单的标签加长度限制,一路 input="type" maxlength="**" 下来很顺。这时杀出个textarea,来也给你加个maxlength。

  不过textarea对我说:"哥我没这属性,您看给换个吧。。。"  没办法,(现在我使用的FireFox15.0.1、Chrome25.0.1364.160支持此属性)既然没这属性那咱就换吧,用事件来控制。

  网上查了下,用于监控文本域内容变可以用onchange、onpropertychange、oninput

  分析:

  onchange只有在失去焦点的时候才会触发,而且如果是用js方法来操作文本域内的值时,我们所做的长度限制就失效了,这个不好。

  onpropertychange在文本域的任何属性改变时都会触发,当然包括值的改变。用这个似乎可以,不过这个方法IE专用,在谷歌、火狐等浏览器无效。

  oninput适用于谷歌、火狐等标准浏览器,不过有个问题是如果用js来操作文本域内的值时这个事件是不会触发的。

  综上所述,我目前能做到的做佳的是这样:  

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <title>文本域长度限制</title>
 5 </head>
 6 <body>
 7     <textarea id="areaContent" maxlength="50" style="width: 400px; height: 200px;"></textarea>
 8 </body>
 9 </html>
10 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
11 <script type="text/javascript">
12     $("#areaContent").bind("input propertychange", function (e) {
13         if ((("\v" == "v" && e.originalEvent.propertyName == "value") || "\v" != "v") && $(this).val().length > $(this).attr("maxlength")) //判断是否为IE9以下浏览器并且是value属性发生了改变
14             $(this).val($(this).val().substring(0, $(this).attr("maxlength")));
15     });
16 </script>

  但是“oninput适用于谷歌、火狐等标准浏览器,不过有个问题是如果用js来操作文本域内的值时这个事件是不会触发的”这个问题还是解决不了,还请路过的朋友留步指教。。。。

时间: 2024-10-10 09:16:20

文本域长度限制的相关文章

JavaScript:文本域事件处理

文本域往往可以输入大量的文字信息,但是在文本域上有一些键盘的处理事件:onkeydown.onkeypress.onkeyup. 范例一:观察文本域的键盘事件处理 代码如下: 效果图如下: 默认状态:     任意输入一个字,操作键盘时:   范例二:限制文本域数字的长度,当文字超过时,提交按钮被禁止使用. 代码如下: <!doctype html> <html lang = "zh-CN"> <head> <meta charset=&quo

javaSwing文本域文件

public class JTextAreaTest extends JFrame{    public JTextAreaTest()    {            setSize(200, 400);        setTitle("定义自动换行的文本域");        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);                Container cp=getContentPane(); 

Bootstrap系列 -- 16. 文本域textarea

文本域和原始使用方法一样,设置rows可定义其高度,设置cols可以设置其宽度.但如果textarea元素中添加了类名“form-control”类名,则无需设置cols属性.因为Bootstrap框架中的“form-control”样式的表单控件宽度为100%或auto. <form role="form"> <div class="form-group"> <textarea class="form-control&quo

表单控件+下拉列表+文本域

一.表单控件 1.<input type="text" name="user"  size="20默认" /> 2.<input type="password" name="code"  /> 3.<input type="radio" name="sex[]" value="1" />+<input ty

jquery 文本域光标操作(选、添、删、取)

一.JQuery扩展 ; (function ($) { /* * 文本域光标操作(选.添.删.取)的jQuery扩展 http://www.cnblogs.com/phpyangbo/p/5528648.html */ $.fn.extend({ /* * 获取光标所在位置 */ iGetFieldPos: function () { var field = this.get(0); if (document.selection) { //IE $(this).focus(); var sel

bootstrap-表单控件——文本域textarea

1.运行效果如图所示 2.实现代码如下 <!DOCTYPE html> <html> <head>     <meta charset="utf-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <title>表单控件--文本域textarea</title>     <!--

JS-007-富文本域操作

在日常 web 编写过程中,富文本域几乎成为了一个网站不可页面元素,同时,其也有着各种各样的实现方式,网络上也存在着各种各样的集成插件可供引用.此文以 js 获取.修改 163 邮箱写邮件时的邮件内容为例,演示 js 操作富文本域的方法.其他各种富文本域内容的修改可参考此文进行编写,感兴趣的小主们,可以尝试一下当前流行的各种富文本域插件. 首先简单演示一下 163 写邮件时,收件人的获取.修改,其页面源码如下所示: 以下为相应元素获取.修改的 js 演示: 以下为 js 获取富文本域内容演示:

HTML学习笔记 域元素(form表单、textarea文本域、fieldset域集合、input使用) 案例 第四节 (原创)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表单</title> </head> <body> <!--form表单--> <form> 用户名: <!--文本域--> <input type="text">

HTML文本域(文本框)禁止修改写入数据方法

html文本域有时需要禁止修改内容,方法如下: 加入readonly=""或readonly="readonly" 如下:<input name="textfield" type="text" value="" readonly="" /><textarea name="textfield" readonly="readonly"