加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在TextChanged上停止回发

发布时间:2020-12-16 06:52:19 所属栏目:asp.Net 来源:网络整理
导读:我在aspx页面中有一个文本框,它附加了一个TextChanged事件. 我还在文本框中附加了一个验证器. 更改文本时,验证会触发,但如果出现错误,仍会调用textchanged事件.如果验证器触发,你知道是否可以在textchanged上停止回发? asp:TextBox ID="txtQuantity" runat=
我在aspx页面中有一个文本框,它附加了一个TextChanged事件.
我还在文本框中附加了一个验证器.

更改文本时,验证会触发,但如果出现错误,仍会调用textchanged事件.如果验证器触发,你知道是否可以在textchanged上停止回发?

<asp:TextBox ID="txtQuantity" runat="server" AutoPostBack="true" ontextchanged="txtQuantity_TextChanged"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqQuantity" ControlToValidate="txtQuantity" runat="server" ErrorMessage="The quantity is mandatory."></asp:RequiredFieldValidator>

解决方法

您可以将验证移动到客户端,添加EnableClientScript =“true”属性.由于将使用JS执行检查,因此不会发生回发.

除此之外,您可以在执行TextChanged事件的回调函数时检查页面是否有效,以便定义函数是否可以继续.您应该将ValidationGroup属性添加到验证器并调用Page.Validate函数,以在选中Page.IsValid之前指定该组.

UPD

这是小费.

添加你自己的JS函数,例如:

function IsValid( args ) {
        if( args.value.length == 0 ) {
            return false;
        }
        else {
            return true;
        }
    }

在Page_Load事件中添加以下代码:

txtQuantity.Attributes[ "onchange" ] = "if ( IsValid(this) == false ) return;";

当输入正确时,这不会弄乱自动回发,但会阻止回发.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读