2010-09-02 25 views
0

我有一个div标签,其中包含一个文本框和一个提交按钮。如果输入的文本是一个数字(int或decimal),我试图只提交提交按钮。但是,在运行调试器时,无论输入什么文本,都会调用onclick函数。任何想法,我怎么搞砸了?正则表达式验证器不工作

<div class="content"> 
<table class="inputForm"> 
    <tr> 
    <th>Percentage:</th> 
    <td> 
    <asp:TextBox ID="VATAmount" runat="server"></asp:TextBox> 
    </td> 
    <td> 
    <asp:LinkButton ID="VATSubmit" runat="server" SkinID="Button" OnClick="VAT_Click" Text="Submit"></asp:LinkButton> 
    </td> 
</tr> 
</table> 
<i>50% should be entered as 50</i>          
    <cb:RequiredRegularExpressionValidator ID="VATVerify" runat="server" ControlToValidate="VATAmount" 
Display="Static" ErrorMessage="The Percent should be written as a decimal." Text="*" ValidationGroup="Add" 
ValidationExpression="[*0-9]*\.[*0-9]" Required="true"> 
    </cb:RequiredRegularExpressionValidator> 

我也应该注意到,*确实进入了一个不正确的值时出现,而不是当输入了正确的

+0

您有

标签的地方吗? – veljkoz 2010-09-02 22:19:53

+0

没有表格标签。如果有帮助,上面的代码块是ajax更新面板的一部分。 – 2010-09-02 22:23:29

+0

终于明白了。问题(除了不正确的正则表达式)是LinkBut​​ton缺少ValidationGroup =“Add”。非常感谢你的帮助! – 2010-09-02 23:40:17

回答

0

看来,正则表达式可能不正确。以下可能的工作(我说的威力,因为正则表达式模式是在他们失败的方式总是偷偷摸摸的):

^[0-9]*\.?[0-9]+$ 
+0

仍然在做同样的事情 – 2010-09-02 22:25:27

0

尝试是这样的:

^[0-9]+(?:\.[0-9]+)?$ 
+0

仍然没有变化。 :( – 2010-09-02 22:33:03

0

楼主的提供的正则表达式肯定是不对的,但我不确定这是真正的原因。 @Mark Wilkins提供的那个很棒。

我的猜测是你的验证根本不会触发。你可以尝试为你的LinkBut​​ton设置CausesValidation="True",看看是否有帮助。

+0

@Mark Wilkins正则表达式确实很好!我试着在代码中放入CausesValidation =“True”,但其行为仍然相同。 – 2010-09-02 22:38:21