我在 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;
}
}
In Page_Load
事件添加此代码:
txtQuantity.Attributes[ "onchange" ] = "if ( IsValid(this) == false ) return;";
当输入正确时,这不会扰乱自动回发,但否则会阻止回发。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)