首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >regular+required验证

regular+required验证
EN

Stack Overflow用户
提问于 2009-11-24 19:06:47
回答 2查看 277关注 0票数 1
代码语言:javascript
复制
<asp:TextBox ID="Textboxtotalamount" OnTextChanged="AmountChanged"
         Width="90px" AutoPostBack="true" runat="server">
</asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server" 
         ControlToValidate="Textboxtotalamount"
         SetFocusOnError="True" ValidationGroup="val">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
         ControlToValidate="Textboxtotalamount"
         ValidationExpression="^[-+]?[1-9]\d{0,13}(\.\d{1,3})?%?$"
         SetFocusOnError="True">F</asp:RegularExpressionValidator>

在上面的代码中可以验证文本框中的字符,如果我在文本框中键入(字符),则调用" ontextchanged“事件....suppose同时显示OnTextChanged事件也称为error ....i ....i ve to stop OnTextChanged event when regularexpression引发......请帮帮忙

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-24 19:26:33

我更新了你的代码。看看这对你有没有帮助。

代码语言:javascript
复制
<asp:TextBox ID="Textboxtotalamount" OnTextChanged="AmountChanged" ValidationGroup="val"
         Width="90px" AutoPostBack="true" runat="server" CausesValidation="true">
</asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server" ValidationGroup="val"
         ControlToValidate="Textboxtotalamount"
         SetFocusOnError="True" >*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
         ControlToValidate="Textboxtotalamount" ValidationGroup="val"
         ValidationExpression="^[-+]?[1-9]\d{0,13}(\.\d{1,3})?%?$"
         SetFocusOnError="True">F</asp:RegularExpressionValidator>
票数 2
EN

Stack Overflow用户

发布于 2009-11-24 19:17:28

我不确定我是否正确理解了您的问题:您只想在验证器没有报告任何错误的情况下执行‘`AmountChanged’代码,对吗?在这种情况下,您应该调用

代码语言:javascript
复制
if (!this.IsValid)
    return;

AmountChanged的开头。(如果this.Validate();本身不启动验证,则可能需要先调用OnTextChanged。)

详情可在此处找到:http://msdn.microsoft.com/en-us/library/dh9ad08f(VS.100).aspx

澄清:目前,您的代码如下所示:

代码语言:javascript
复制
void AmountChanged(...) {
    ...
}

您需要将其更改为:

代码语言:javascript
复制
void AmountChanged(...) {
    if (!this.IsValid)
        return;

     ...
}

这样当某个验证器检测到错误时,代码就不会执行。此外,您必须将CausesValidation="true"添加到您的TextBox中,如Saar的示例所示。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1789360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档