2016-04-15 32 views
0

我使用此代码只允许数字键入文本框,但现在我想要允许.也。我修改了这段代码,但没有工作。在标记为什么我的代码不允许特定的符号?

function isNumberKeyDotAllowed(evt) { 
    var charCode = (evt.which) ? evt.which : event.keyCode 
    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode == 46) 
     return false; 

    return true; 
} 

文本框声明:

<asp:TextBox runat="server" ID="txtBoxApplicantCNICNo" 
    onkeypress="return isNumberKeyDotAllowed(this)" AutoPostBack=True 
    OnTextChanged="txtCHan_event" CssClass="form-control"> 
+0

仍然没有工作 – Cuckoo

回答

0

我看到两个问题与您的代码。第一个是你传递this作为参数isNumberKeyDotAllowed,而你应该通过event

onkeypress="return isNumberKeyDotAllowed(event);" 

二是验证条件。这是我自己的函数版本。我定义的成功,而不是失败的条件的情况下,因为它是我更容易弄清楚:

function isNumberKeyDotAllowed(evt) { 
    var charCode = evt.which ? evt.which : evt.keyCode; 
    if (charCode == 46 || (48 <= charCode && charCode <= 57)) { 
     return true; 
    } 
    else { 
     return false; 
    } 
} 
+1

只是说明该按键事件不会对之类的东西粘贴火OP在文字 – dman2306

+0

@ dman2306 - 是的。事实上,如果使用Ctrl + V完成粘贴,则会触发'V'。使用上面的代码,无法以这种方式粘贴有效的号码。 – ConnorsFan

+0

@ConnorsFan你好。先生,它不工作。代替 。它允许 - 连字符:/ – Cuckoo

相关问题