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

カスタム検証は呼び出されていません。

customvalidatorをinovkeして検証を行うにはどうすればよいですか?

注:これは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 に答える