当用户在asp.net中按Tab键时如何限制输入类型?

时间:2013-02-08 12:21:15

标签: javascript asp.net validation

我有一个文本框,其中用户插入了SSN号码,TexBox有一个default value as 'XX-XX-',然后他只在'XX-XX-'之后输入四位数字。我有javascript,但当他按Tab键时,TexBox中的文字,即'XX-XX-'被选中,它将刷新所有选定的文本。我想限制它只能在'XX-XX-'eg: XX-XX-1234之后输入怎么办?

.aspx页面:

<asp:TextBox ID="txtInsuredSSN" runat="server" Text="XX-XX-" MaxLength="10" onkeydown="return validateSSN(event);" />

使用Javascript:

function validateSSN(key) {

            //getting key code of pressed key
            var keycode = (key.which) ? key.which : key.keyCode;
            var phn = document.getElementById('<%#txtInsuredSSN.ClientID %>');
            if (phn.selectionStart < 6)
                return false;
            //comparing pressed keycodes
            if ((keycode < 48 || keycode > 57)) {
                if ((keycode > 95 && keycode < 106) && phn.value.length < 10)//if num lock is on
                {
                    return true;
                }
                else if (keycode = 8 && phn.value.length > 6) { //check for backspace
                    return true;
                }
                else {

                    return false;
                }
            }
            else {
                //Condition to check textbox contains ten numbers or not
                if (phn.value.length < 10) {
                    return true;
                }
                else {
                    return false;
                }
            }
        }

Plz建议任何解决方案?

1 个答案:

答案 0 :(得分:0)

使用硬编码前缀的标签,例如:

<label>
<span class="frmlabelleftfloat">SSN: xx-xx-</span>
<asp:TextBox ID="Last4OfSSN"  runat="server" ValidationGroup="ssnValidation" MaxLength="4"></asp:TextBox>
<span class="failureNotification">*</span>
<asp:RegularExpressionValidator ID="regexpssn" runat="server" ControlToValidate="Last4OfSSN"
    ValidationGroup="ssnValidation"     Display="Dynamic" ForeColor="Red" ErrorMessage="Should be 4 Digits"
    ValidationExpression="\\d{4}?$">   </asp:RegularExpressionValidator>
</label>

你需要验证正则表达式。