`
iomo
  • 浏览: 39995 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

还剩多少字节

阅读更多
<div class="dream_name">
                	<p><strong>我的梦想是:</strong><input class="input_text" id="dreamtitle" name="dreamtitle" type="text" maxlength="40" /></p>
                    <span>(最多可输入<strong id="stat_max"></strong>个字符,当前共<strong  id="stat_total"></strong>个字符,还可输入<strong id="stat_left" ></strong>个字符)</span>
                </div>

 

 <script language="javascript" type="text/javascript">
<!--
var
// 获取元素
$ = function(element) {
 return (typeof(element) == 'object' ? element : document.getElementById(element));
},
// 判断浏览器
brower = function() {
 var ua = navigator.userAgent.toLowerCase();
 var os = new Object();
 os.isFirefox = ua.indexOf ('gecko') != -1;
 os.isOpera = ua.indexOf ('opera') != -1;
 os.isIE = !os.isOpera  &&  ua.indexOf ('msie') != -1;
 os.isIE7 = os.isIE  &&  ua.indexOf ('7.0') != -1;
 return os;
},
// 事件操作(可保留原有事件)
eventListeners = [],
findEventListener = function(node, event, handler){
 var i;
 for (i in eventListeners){
  if (eventListeners[i].node == node  &&  eventListeners[i].event == event  &&  eventListeners[i].handler == handler){
   return i;
  }
 }
 return null;
},
myAddEventListener = function(node, event, handler){
 if (findEventListener(node, event, handler) != null){
  return;
 }
 if (!node.addEventListener){
  node.attachEvent('on' + event, handler);
 }else{
  node.addEventListener(event, handler, false);
 }
 eventListeners.push({node: node, event: event, handler: handler});
},
removeEventListenerIndex = function(index){
 var eventListener = eventListeners[index];
 delete eventListeners[index];
 if (!eventListener.node.removeEventListener){
  eventListener.node.detachEvent('on' + eventListener.event,
  eventListener.handler);
 }else{
  eventListener.node.removeEventListener(eventListener.event,
  eventListener.handler, false);
 }
},
myRemoveEventListener = function(node, event, handler){
 var index = findEventListener(node, event, handler);
 if (index == null) return;
 removeEventListenerIndex(index);
},
cleanupEventListeners = function(){
 var i;
 for (i = eventListeners.length; i > 0; i--){
  if (eventListeners[i] != undefined){
   removeEventListenerIndex(i);
  }
 }
};
-->
</script>
<script language="javascript" type="text/javascript">
<!--
/*
 - statInput 输入限制统计
 - 长度超出_max的话就截取...貌似没有更好的办法了
*/
function statInput(e, _max, _exp) {
 e   = $(e);
 _max  = parseInt(_max);
 _max  = isNaN(_max) ? 0 : _max;
 _exp  = _exp==undefined ? {} : _exp;
 
 if(e==null || _max==0) {
  alert('statInput初始化失败!');
  return;
 }
 
 var
 // 浏览器
 _brower  = brower();
 // 输出对象
 _objMax  = _exp._max==undefined ? null : $(_exp._max),
 _objTotal = _exp._total==undefined ? null : $(_exp._total),
 _objLeft = _exp._left==undefined ? null : $(_exp._left),
 // 弹出提示
 _hint  = _exp._hint==undefined ? null : _exp._hint;
 
 // 初始统计
 if(_objMax!=null) _objMax.innerHTML = _max;
 if(_objTotal!=null) _objTotal.innerHTML = 0;
 if(_objLeft!=null) _objLeft.innerHTML = 0;
 
 // 设置监听事件
 // 输入这个方法比较好.
 // 但是Opera下中文输入跟粘贴不能正确统计...相当BT的东西...
 // 如果不考虑Opera的话就用这个吧.否则就老老实实用计时器.
 if(_brower.isIE) {
  myAddEventListener(e, "propertychange", stat);
 }else{
  myAddEventListener(e, "input", stat);
 }

 
 // 统计函数
 var _len, _olen, _lastRN, _sTop;
 _olen = _len = 0;
 function stat() {
  _len = e.value.length;
  if(_len==_olen) return;  // 防止用计时器监听时做无谓的牺牲...
  if(_len>_max) {
   _sTop = e.scrollTop;
   // 避免IE最后俩字符为'\r\n'.导致崩溃...
   _lastRN = (e.value.substr(_max-1, 2) == "\r\n");
   e.value = e.value.substr(0, (_lastRN ? _max-1 : _max));
   if(_hint==true) alert("你太调皮了,都已经超出字符限制了,为师跟你说过,叫你不要输那么多字~~.");
   // 解决FF老是跑回顶部
   if(_brower.isFirefox) e.scrollTop = e.scrollHeight;
  }
  _olen = _len = e.value.length;
  
  // 显示已输入字数
  if(_objTotal!=null) _objTotal.innerHTML = _len;
  // 显示剩余可输入字数
  if(_objLeft!=null) _objLeft.innerHTML = (_max-_len)<0 ? 0 : (_max-_len);
 }
 
 stat();
}
-->
</script>
<script language="javascript" type="text/javascript">
<!--
myAddEventListener(window, "load", testStatInput);
function testStatInput(){
 statInput('dreamtitle', 40, {_max : 'stat_max', _total : 'stat_total', _left : 'stat_left', _hint : true});
}
-->
</script>

 

分享到:
评论

相关推荐

    3字节乘以3字节

    如果还有字节未处理,继续循环 ; 最终结果在C寄存器中 ``` 这个框架只是一个简化的示例,实际的51汇编代码会更复杂,需要考虑更多的细节,如溢出检测、错误处理等。此外,由于51单片机的限制,可能需要使用其他...

    常用限制文本字节数的JS源代码程序

    ### 常用限制文本字节数的JS源代码...通过以上介绍,我们可以看到这个JavaScript函数不仅能够有效地控制用户的输入长度,还能够提供友好的用户体验。开发者可以根据自己的需求调整参数,轻松地将其应用到不同的场景中。

    常用字节转换工具

    7. **编码转换**:除了ASCII,还有许多其他字符编码,如UTF-8、GBK等。工具可能支持不同编码间的转换,解决字符集兼容性问题。 ByteConvertTool.exe很可能是这样一款字节转换工具的可执行文件。使用时,用户只需...

    易语言字节集辅助工具源码

    此外,还有“字节集长度”用于获取字节集的大小,“字节集到字符串”和“字符串到字节集”用于字节集与字符串之间的转换,这些都是在处理字节集时常用的操作。 在字节集辅助工具中,可能包含了一些实用的辅助函数,...

    汇编多字节除法 汇编多字节除法 汇编多字节除法

    - 类似地,还有更多条件判断来适应更长的数据长度。 - **子程序DVDL1**:这是核心的除法运算子程序,实现了基本的除法算法。具体步骤包括: - 将除数的每一位向左移位,并将进位保存在`C`中。 - 使用`SUBB A, R3...

    易语言字节集与十六进制高效互转模块源码 支持反转

    也是以前用汇编写的,其实还有更好的写法,只是我懒得改了。效率嘛,至少可以完爆目前所有公开的易语言。源码。特点:支持按字节反转,作用自己体会,可自动处理长度不正确的 HEX 数据,比如 HEX 文本为 ABC,转换到...

    字节转浮点数工具

    因为调试需要把下位机传上来的4字节数转成浮点数查看,网上找的都不能很好的使用,有的还有病毒,所以自己做了这个小程序。C#做的,机器上有.NET Fromwork 4就可以直接使用。 使用方法:在上面4个文本框中输入4个16...

    3字节浮点数互换转换程序

    此外,这个程序还可以扩展到四字节浮点数的转换,只需要调整解析和重构过程中的细节,以适应标准的单精度浮点数格式。 在实际应用中,这样的程序可能用于通信协议、数据交换或者在处理某些硬件设备的数据时,这些...

    字节流与各类型数据的互转工具

    1.任何数据类型到字节流的转换 2.字节流到任何数据类型的转换 3.字符串按各种格式编码,解码 4.各种进制的转换,一键全转,当然还有反转 小工具,大用途! 工控代码开发,TCP通讯,字节流调试的利器

    轻松看懂Java字节码.pdf

    7. 其他JVM语言:由于JVM平台的灵活性和强大的字节码支持,除了Java之外,还有很多基于JVM的编程语言,例如Groovy、Scala、Kotlin等,它们可以利用Java字节码的特性提供一些Java所不支持的高级语言特性。 8. 字节码...

    文本文件字节集寻找替换.rar

    在实际工作中,根据不同的需求,我们还需要考虑性能优化、错误处理以及如何安全地处理大量数据等问题。对于开发人员来说,熟悉这些概念和技巧能大大提高工作效率,并为解决复杂问题提供有力工具。

    STM32串口第一个字节丢失问题的分析过程

    4. **多种解决方案**:除了文中提到的方法外,还有其他一些方法也可以解决第一个字节丢失的问题,例如加入小延时或直接清除TC标志位后再发送数据。 通过以上分析和解决方案的应用,开发者可以有效地解决STM32串口...

    字节码查看器和二进制查看器-字节破解解码很有用-v1.0

    字节码查看器和二进制查看器-字节破解解码很有用-v1.0 解码dat文件专用。破解专用。转码有用。 字节码查看器,二进制查看器,字节破解解码很有用。还有更专业的,没有开放出来。

    Java字节流与字符流的介绍.pdf

    InputStream 还有一个子类:过滤器流 java.io.FilterInputStream。过滤器流即能把基本流包裹起来,提供更多方便的用法。FilterInputStream 类的构造方法为 FilterInputStream(InputStream),在指定的输入流之上,...

    字节流字符流练习

    在Java IO中,还有一套转换流(Wrapper Stream),即InputStreamReader和OutputStreamWriter,它们可以将字节流转换为字符流,或者反之。例如,当你需要从一个字节流读取文本数据时,可以先创建一个...

    java .net 反编译工具 字节码反编译

    除了这些基本的反编译工具,还有一些高级的工具和框架,如Java的ASM和.NET的Mono.Cecil,它们允许开发者直接操作字节码,用于动态代码生成、代码插桩和性能分析等目的。这些库虽然不直接进行反编译,但它们在底层...

    原始类型 包装类 原始类型所占的字节数

    在 Java 中,还有许多其他的知识点与原始类型和包装类相关。例如,Integer 类提供了许多有用的方法,可以对整数进行操作,例如将整数转换为字符串、比较两个整数的大小等。Byte 类、Short 类、Long 类、Float 类、...

Global site tag (gtag.js) - Google Analytics