我有一个带有一个多行文本框、一个按钮和两个验证器的表单。我有以下标记:
<asp:RequiredFieldValidator ID="vldQuestionTextRequired" runat="server" ControlToValidate="tbmQuestionText"
Display="Dynamic"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="vldNotHintText" runat="server" ControlToValidate="tbmQuestionText"
Display="Dynamic" EnableClientScript="true" OnServerValidate="HintText_ServerValidate"
ClientValidationFunction="HintText_ClientValidate"></asp:CustomValidator>
<span class="eq_ad_question_field_bg"> </span>
<asp:TextBox ID="tbmQuestionText" runat="server" CssClass="eq_ad_question_field"
TextMode="MultiLine"></asp:TextBox>
客户端验证 JS 如下所示:
function HintText_ClientValidate(sender, e)
{
if(e.Value != null)
e.IsValid = e.Value != '<%= InstructionalText %>';
else
e.IsValid = false;
}
当我在不修改原始提示文本的情况下单击按钮时,我会收到正确的验证器错误消息,并且焦点会返回到文本框。如果我然后在文本框中写一些东西然后单击按钮,验证器将被重新评估并消失,但不会发生回发。如果我再次单击该按钮,我会收到回发。
有没有人见过这种行为?谢谢!
编辑:我发现如果我将验证器设为静态而不是动态,则该按钮可以工作。有没有办法解决这个问题?