我有一个文本框,其中用户插入了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建议任何解决方案?
答案 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>
你需要验证正则表达式。