簡體   English   中英

asp.net中的范圍驗證器無法按預期工作

[英]Range validator in asp.net doesn't work as expected

我的頁面中有一個用於文本框的RV:

<asp:RangeValidator ID="titleRV" runat="server" ControlToValidate="titletxt" Font-Bold="True" Font-Size="Small" ForeColor="Red" MinimumValue="4" MaximumValue="100" Type="Integer" SetFocusOnError="True" Display="Dynamic" >Must be more than 3 !</asp:RangeValidator>

當我在運行時在文本框中輸入任意數量的字符時,無論是否鍵入少於3個字母,都會出現范圍驗證器,並且如果增加字母數量,該驗證器不會消失! 請幫忙嗎?

Rangevalidator將檢查輸入的值是否介於兩個值之間,而不是確定其長度是否一定。 您似乎在尋找長度驗證器

 <asp:TextBox ID="txtTextBox" MaxLength="100" .../>

我認為沒有內置最小長度驗證器,但是您可以在后面的代碼中輕松添加一些內容

if(txtTextBox.Length < 3)
    // display error message

或正則表達式驗證器

<asp:RegularExpressionValidator ID="valLength" runat="server"    
    ErrorMessage="Must be between 3 and 100 characters"
    ControlToValidate="txtTextBox"    
    ValidationExpression="^[a-zA-Z0-9'@&#.\s]{3,100}$" />

范圍驗證器旨在檢查您是否輸入了范圍內的值,例如0到100之間的數字。在我看來,您正在嘗試檢查輸入了多少個字母?

假設我已經正確理解了我的建議,那就是使用RegEx驗證器。

您可以使用類似以下的表達式:

<asp:RegularExpressionValidator ID="valLength" runat="server"    
    ErrorMessage="Your text must be between 3 and 100 characters"       
    ValidationExpression="^[0-9a-zA-Z]{3,}$"
    ControlToValidate="txtTextBox" />

顯然,這需要根據允許的字符進行調整

您的范圍驗證器將驗證數字是否在4到100之間,而不是文本框中的字符數。

這將達到目的(CustomValidator):

<asp:TextBox runat="server" ID="titletxt" />    
<asp:CustomValidator runat="server" ID="CustomValidator1" ControlToValidate="titletxt"
    Text="The text length should be between 4 and 20" 
    ClientValidationFunction="clientValidate" Display="Dynamic">
</asp:CustomValidator>


<script type="text/javascript">
function clientValidate(sender, args) {
    if (args.Value.length < 4 ||args.Value.length > 20) {
        args.IsValid = false;
    }
}

請嘗試這個.....

    <script type="text/javascript">
        function test()
        {
            if (document.getElementById('titletxt').value.length < 3) {
document.getElementById('spMessage').style.display = '';
                return false;
            }
            else {
document.getElementById('spMessage').style.display = 'none';
                return true;
            }
        }
        </script>

HTML ...

<asp:TextBox runat="server" ID="titletxt" onblur="return test()"></asp:TextBox>
<span id='spMessage' style="font-weight:bold; font-size:small; color:Red; display:none">Enter more than 3 char!</span>

您可以創建此javascript並調用test()函數來驗證文本框。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM