文本框不会在模糊时重新生效

时间:2012-11-28 10:00:18

标签: c# asp.net validation

我有一个带有一个多行文本框,一个按钮和两个验证器的表单。 我有以下标记:

    <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">&nbsp;&nbsp;&nbsp;&nbsp;</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;
}

当我单击按钮而不修改原始提示文本时,我得到了正确的验证器错误消息,并且焦点返回到文本框。如果我然后在文本框中写入内容然后单击按钮,验证器将被重新评估并消失,但不会发生回发。如果我再次点击该按钮,我会收到回发。

之前有没有人见过这种行为? 谢谢!

编辑:我发现如果我将验证器设置为静态而不是动态,则按钮可以正常工作。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

这个文本框有一些javascript使它具有弹性。这个javascript在onblur事件上搜索,以删除未使用的空间,并且由于文本框正在改变,回发被停止。文本框的最小化不是开始的要求,因此我将其删除并且回发效果很好。