2

我有以下设置,我在其中自定义验证文本框。只要我手动输入文本框并更改文本并将焦点移出文本框,它就可以正常工作。

<asp:TextBox ID="tbpCity" runat="server"/>     
<asp:CustomValidator ID="cvPermanentCity" runat="server" ControlToValidate="tbpCity" 
 ErrorMessage="CustomValidator" onservervalidate="Field_ServerValidate"   SetFocusOnError="true" Display="Dynamic" ToolTip="PermanentCity" />
 <ajaxtoolkitwcsfextensions:ServerSideValidationExtender ID="PermanentCityServerSideValidationExtender" runat="server" TargetControlID="cvPermanentCity" />

当我尝试从 javascript 调用验证更改事件时(使用 JQuery 1.4.2)

function copyCity() {
$('#<%= tbpCity.ClientID%>').value = "Some City";
$('#<%= tbpCity.ClientID%>').trigger("change");
}

未调用自定义验证。

我怎样才能 inovke customvalidator 进行验证?

注意:我已经验证这在 FireFox 上有效,但在 IE 上无效。请让我知道如何在 IE 中触发更改事件。

4

1 回答 1

1

我在 StackOverflow 上找到了类似问题的答案。

var tbPermanentAddressCity = document.getElementById('<%= tbpCity.ClientID%>');
if (tbPermanentAddressCity.fireEvent) {
    tbPermanentAddressCity.fireEvent("onchange");
} else {
    $('#<%= tbpCity.ClientID%>').change();
}

一旦 onchange 事件被触发,CustomValidator 就会选择并验证文本框。

于 2011-02-18T20:25:51.980 回答