2010-09-02 22 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