我在文本输入框中检验,要求是货币类型,不允许输'-'
用keyPress事件
if(keyCode=="-".charCodeAt(0))能判断"-"号吗?

解决方案 »

  1.   

    http://expert.csdn.net/Expert/TopicView1.asp?id=1238516
      

  2.   

    OK了,谢谢<input type=text onKeyPress="CheckKey(this)">function CheckKey(obj){   //控制文本框的输入,只能为数字,保留小数点后面两位
    var index;
    if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
    if(event.keyCode=="-".charCodeAt(0))event.returnValue = false;if((index=obj.value.indexOf("."))>=0)
    if(obj.value.substring(index,obj.value.length).length>2) event.returnValue=false;
    }
      

  3.   

    因为汉字输入不触发keyPress事件啊。还有粘贴过来的我也没有管。因为最后发送前我还要再检查整个表单的。这个函数只是为了帮助用户少犯错误罢了。
      

  4.   

    不要用onkeyPress,用onPropertyChange
      

  5.   

    <input type=text style="ime-mode:disabled">
      

  6.   

    ok了,让大家共想
    <input type=text name=i211 onkeypress="return CheckKey(this)" style="ime-mode:disabled">function CheckKey(obj){   //控制文本框的输入,只能为货币类型的数字,保留小数点后面两位
    var index;
    var code = (document.all)?(event.keyCode):(event.which)
    if((index=obj.value.indexOf("."))>=0){  
         if((str=obj.value.substring(index,obj.value.length)).length>2) return false;    
    }
    var ch=String.fromCharCode(code)
    var elm = (document.all)?(event.srcElement):(event.target)
    return ("0123456789".indexOf(ch)>-1 || (ch=="." && elm.value.indexOf(".")==-1));
    }缺点:如果末尾输入单个的小数点
    就结束输入,则会留小数点在文本框里