文本框用js实现只能输入中文,只能输入数字,等,就是输入的时候直接看不到不可输入的字符,而不是keyup的时候判断,然后在用空替换,我是指在keypress的时候判断,用keycode试了下,做不到
 function onlychinese(){
if ((window.event.keyCode >=32) && (window.event.keyCode <= 126))
{
window.event.keyCode = 0 ;
}
}
function onlyDigital(){
if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))) )
{
window.event.keyCode = 0 ;
}

解决方案 »

  1.   

    直接看不到不可输入的字符,不明白!用keyup输入的不符合规则就已是空了,输入不了的!不知道你要的是什么效果。
    以下是只能输入字母和数字的验证:
    function checkIntLetter(obj) {
       obj.value = obj.value.replace(/[^A-Za-z\d]/g, "");
    }
      

  2.   

    你没发现用replace,当你输入不符合规则的字符是,仍然会在文本框中出现一秒,keyup的时候才会判断是不是符合规则,我想要的是press的时候直接判断
      

  3.   

    不知道楼主熟悉jquery不,你这个写法跨浏览器有问题,用jquery可以这么写(不能输入字母)
    $("#itext").keypress(function(eve){
    if(eve.which >=58 && eve.which <=126){
    return false;
    }
    return true;
    });
    基本的原理就是给input监听keypress事件,然后如果不符合要求的值就让方法返回false。不熟悉jquery你也可以利用这个原理写原始的js代码。
    这样还是不能完全解决,因为你可以不通过键盘输入,而是通过纯鼠标copy的方式输入东西。一般弄到这一步就可以了,否则你需要禁用右键菜单
      

  4.   

    只能输入数字的:http://hi.baidu.com/freish/blog/item/36b82b9724ac716655fb96b7.html