范围验证器问题

时间:2011-07-13 16:21:44

标签: javascript asp.net

我在其中一个字段中有一个带文本框的GridView。我使用范围验证器来确保用户只输入“x”字符:

<asp:TextBox ID="txtMP3Master" runat="server" Text='<%# Eval("MP3Master") %>' BorderStyle="None" Width="80%" MaxLength="1" onchange="JSSaveNTSChanges(this);"></asp:TextBox>  
<asp:RangeValidator ID="MP3MasterRangeValidator" runat="server" ControlToValidate="txtMP3Master" Display="Dynamic" ErrorMessage="MP3 Master can be nothing but 'x'" Text="*" MinimumValue="x" MaximumValue="x" ValidationGroup="InsertUpdateNewTitlesStatusValidation">
</asp:RangeValidator>

验证器在无效输入上显示“*”,但仍然调用JSSaveNTSChanges()。我希望在无效输入时阻止此函数调用。 BTW,CompareValidator在其他字段中正常工作,并阻止调用相应的函数。 有可能解决这个问题吗? 感谢。

2 个答案:

答案 0 :(得分:0)

我不确定在验证器验证之前或之后是否会调用函数JSSaveNTSChanges。但我推荐以下两个选项之一:

  1. 在提交按钮中单击移动JSSaveNTSChanges。
  2. 使用EnableClientValidation = true
  3. 在自定义验证程序中调用此函数

答案 1 :(得分:0)

您应该使用CompareValidator代替RangeValidator

这是我在最后测试的内容。试试吧..

<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"
        ValueToCompare="x"  ControlToValidate="txtMP3Master"></asp:CompareValidator>