约束输入框前几位不可变

原创 2004年08月31日 18:18:00

        在我们开发系统中,曾有过这种需求,就是使文本框中前几位的内容不可变,这里对这个功能进行封装,只需要在输入框中引入css样式即可.

        希望对大家有所帮助.

<!-- 欢迎转载,请保留作者和出处,谢谢 -->
<HTML>
<STYLE>
.notChangePartValue
{
    input:expression(regInput(this));
}
</STYLE>
<SCRIPT language="javascript">
function regInput(obj)
{
    obj.ondrop = function(){return false;}
    obj.oncontextmenu = function(){return false;}
    obj.onkeydown = function()
    {
        restrictInputValue(obj)
    }
}
/**
 * added by LxcJie 2004.7.3
 * 限制文本框的前几位不可以改变
 * 在文本框的onKeyDown事件中调用restrictInputValue(this)
 * 即使最初指定的value值不再允许改变
 */
function restrictInputValue(obj)
{
    var range = obj.createTextRange();
    //给相应的文本框设置一个自定义属性initWidth,用来保存起始value的宽度
    if(typeof(obj.initWidth) == "undefined")
    {
        obj.initWidth = range.boundingWidth;
    }
    var selRange = document.selection.createRange();
    //如果页面没有选中任何文字
    if(selRange.text.length == 0)
    {
        selRange.setEndPoint("StartToStart",range);
        var currentWidth = selRange.boundingWidth;
        if(currentWidth < obj.initWidth)
        {
            if(event.keyCode < 33 || event.keyCode > 40
                || event.keyCode == 46 || event.keyCode == 8)
                event.returnValue = false;
        }
        if(currentWidth == obj.initWidth)
        {
            if(event.keyCode == 8)
                event.returnValue = false;
        }
    }
    //页面选中文字
    else
    {
        selRange.moveEnd("character",-selRange.text.length);
        selRange.setEndPoint("StartToStart",range);
        var currentWidth = selRange.boundingWidth;
        if(currentWidth <= obj.initWidth-1)
        {
            //对于方向键和home,end,pageup,pagedown不限制
            if(event.keyCode < 33 || event.keyCode > 40)
                event.returnValue = false;
        }
    }
}
</SCRIPT>
<BODY>
<INPUT type="text" value="Soft" class="notChangePartValue">
</BODY>
</HTML>

SQL Server 条件约束,唯一约束 设定总结

SQL Server中有五种约束类型,分别是 PRIMARY KEY约束、FOREIGN KEY约束、UNIQUE约束、DEFAULT约束、和CHECK约束。查看或者创建约束都要使用到 Microso...
  • qq61394323
  • qq61394323
  • 2014年09月23日 16:00
  • 2387

ISE管脚约束设置参数详解

在ISE中,打开User Constraints中的Assign Package Pins就可以对设定的管脚进行约束。      打开了Xilinx PACK-[De...
  • u012129372
  • u012129372
  • 2015年07月12日 00:00
  • 4202

MySQL中对三种约束的支持

引言文章地址:MySQL中对三种约束的支持 关系型数据库通过约束机制可以保证数据的完整性。数据完整性通常由三种形式: 1. 实体完整性:即表中有一个主键。 2. 域完整性:数据值满足指定的条件。...
  • kailee_hust
  • kailee_hust
  • 2016年06月20日 17:31
  • 9418

隐藏文件上传按钮前面的输入框,美化文件模拟ajax上传。并预览图片

一句话不割: 我们在HTML 中使用 时,显示的是一个文本框和一个‘浏览’按钮,很丑,我们想把前面这个文本框去掉,行不行呢? 很丑,也很占空间 做成这样的效果 开始做: ...
  • yangyi2083334
  • yangyi2083334
  • 2013年02月21日 09:37
  • 6707

输入一个不多于五位的整数,输出它是几位数,各位数字,及其逆序

  • 2010年12月05日 11:31
  • 974B
  • 下载

Android EditText 千分位格式化 删除也要自动格式化 监听小数点让用户只能输入小数点后几位

Android EditText监听小数点让用户只能输入小数点后两位 最近项目需要输入价格,但是不想让用户在小数点后面输入太多,所以我封装了一个。当用户输入小数点的时候 监听小数点后面的位数,只要...
  • omayyouhappy
  • omayyouhappy
  • 2015年10月23日 15:12
  • 2668

UITextField 控制文本输入小数点和小数点后几位

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementSt...
  • Emperor_huanzi
  • Emperor_huanzi
  • 2016年05月11日 14:48
  • 181

JAVA--第2周实验--用户从键盘输入一个1~9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:用户...
  • leihengxin
  • leihengxin
  • 2012年09月07日 16:21
  • 6789

检测输入的是几位数

检测输入的是几位数,并求每一位数字的和和积。 # -*- coding: utf-8 -*- # 作者:涓涓细流 # 日期:20151125 # 环境:pycharm5-community ...
  • gntiler
  • gntiler
  • 2015年12月01日 16:13
  • 222

向屏幕输入一个数,输出是几位数

  • 2015年06月03日 15:37
  • 233B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:约束输入框前几位不可变
举报原因:
原因补充:

(最多只允许输入30个字)