1

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

    <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;
}

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

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

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

4

1 回答 1

1

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

于 2012-12-16T16:18:10.647 回答