我做的是类似扫描枪效果的文本,当输入14位数字后,如何自动转移焦点并进行判断,求教高手解惑
    protected void txtid_TextChanged(object sender, EventArgs e)
    {
    //判断输入的是否是数字
        string info = ((TextBox)sender).Text;
        for (int i = 0; i < info.Length; i++)
        {
            string str = info.Substring(i, 1);
            if ((str.CompareTo("0") >= 0 && str.CompareTo("9") <= 0))
            {
                continue;
            }
            else
            {                ((TextBox)sender).Text = "";
                break;
            }
        }
    //如果输入的是14位数字
        if (txtid.Text.Length == 14)
        {
            string stuid;
            Session["stuid"] = txtid.Text;
            stuid = Session["stuid"].ToString();
            pro_0201admissions(stuid);        }    }

解决方案 »

  1.   

    要使用客户端脚本判断
    onkeydown
    onkeypress
      

  2.   

    onblur来判断是否失去焦点,当时去后出发JS。
    下面例子出发判断输入是否数字。
    code=HTML]onblur="isNumber()";[[/code]//如一个文本框失去焦点时,判断输入的值只能为数字
    function isNumber(){
    isNum = /^[0-9]*$/;
    alert(isNum.test(Form1.InputBox.value));
    }
      

  3.   


    <input type="text" onkeypress="k(this);" onblur="b(this);" />
    <script type="text/javascript">
    function k(obj) //按下任意键触发
    {
        if(obj.value.length >= 14)
        {
            document.getElementById("下一个控件").focus();//下一个控件获得焦点
         }
    }
    function b(obj) //失去焦点时触发
    {
        //判断是否是数字,不是的话 obj.focus();//obj又重新获得焦点
    }
    </script>