我有一个带有一个多行文本框,一个按钮和两个验证器的表单。 我有以下标记:
<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;
}
当我单击按钮而不修改原始提示文本时,我得到了正确的验证器错误消息,并且焦点返回到文本框。如果我然后在文本框中写入内容然后单击按钮,验证器将被重新评估并消失,但不会发生回发。如果我再次点击该按钮,我会收到回发。
之前有没有人见过这种行为? 谢谢!
编辑:我发现如果我将验证器设置为静态而不是动态,则按钮可以正常工作。有没有办法解决这个问题?
答案 0 :(得分:1)
这个文本框有一些javascript使它具有弹性。这个javascript在onblur事件上搜索,以删除未使用的空间,并且由于文本框正在改变,回发被停止。文本框的最小化不是开始的要求,因此我将其删除并且回发效果很好。