私はClientValidationFunctionでそのイベントをキャッチしています。JavascriptでASP.netでカスタムバリデータコントロールの引数を取得していますか?
私が抱えている問題は、私はいくつかのプロセスを実行しています。このプロセスの結果は、args.IsValidがtrueまたはfalseであるべきかどうかを判断する必要があります。しかし、私がキャッチしている結果は、私がargsにアクセスする方法を見つけることができないコールバックにあります。
私はvar Args globalyを定義してそこから値を取得しようとしました。それを得ることができませんでした。
私はuserContext経由で送信しようとしました。使用しない(文字列のみを受け入れると思う)。
私はdocument.getElementByIdによってバリデーターを取得しようとしましたが、私はargsプロパティーを見つけることができませんでした。これは私が私に最も論理的なものですが、私はそれを見つけることができません。
私が書いたjavascriptコードはこれと同じです。
function ValidateUserMail(oSrc, args) {
var myField = document.getElementById('<%=RegisterUserWizardStep.ContentTemplateContainer.FindControl("Email").ClientID %>');
PageMethods.IsMailAvailable(myField.value, OnSucceeded);
}
//i need to edit args value from this function below.
function OnSucceeded(result, userContext, methodName) {
if (methodName == "IsMailAvailable")
if (!result) {
var myValidator = document.getElementById('<%=RegisterUserWizardStep.ContentTemplateContainer.FindControl("UniqueEmailRequired").ClientID %>');
myValidator.args = false; //doesn't work any ideas about the working property?
}
}
と、バリデータのためにaspxで書いたコードはこのようです。
<asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email"
CssClass="failureNotification" ErrorMessage="E-mail is required." ToolTip="E-mail is required."
ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
<asp:CustomValidator ID="UniqueEmailRequired" runat="server" ControlToValidate="Email"
CssClass="failureNotification" ErrorMessage="Unique E-mail is required." ToolTip="Unique E-mail is required."
ValidationGroup="RegisterUserValidationGroup" ClientValidationFunction="ValidateUserMail">*</asp:CustomValidator>
ありがとうございます!
更新;ブラウザー内のuniqueEmailValidator JavascriptのレンダリングされたHTML。
var MainContent_RegisterUser_CreateUserStepContainer_UniqueEmailRequired = document.all ? document.all["MainContent_RegisterUser_CreateUserStepContainer_UniqueEmailRequired"] : document.getElementById("MainContent_RegisterUser_CreateUserStepContainer_UniqueEmailRequired");
MainContent_RegisterUser_CreateUserStepContainer_UniqueEmailRequired.controltovalidate = "MainContent_RegisterUser_CreateUserStepContainer_Email";
MainContent_RegisterUser_CreateUserStepContainer_UniqueEmailRequired.errormessage = "Unique E-mail is required.";
MainContent_RegisterUser_CreateUserStepContainer_UniqueEmailRequired.validationGroup = "RegisterUserValidationGroup";
MainContent_RegisterUser_CreateUserStepContainer_UniqueEmailRequired.evaluationfunction = "CustomValidatorEvaluateIsValid";
MainContent_RegisterUser_CreateUserStepContainer_UniqueEmailRequired.clientvalidationfunction = "ValidateUserMail";
はyouuありがとうございました!!あなたの非常に速い答えのために、私はこのエラーを得ています。 Microsoft JScriptランタイムエラー: 'Value'プロパティの値を設定できません:オブジェクトがnullまたは未定義(最初の行)とMicrosoft JScriptランタイムエラー: 'IsValid'プロパティの値を設定できません:オブジェクトがnullまたは未定義です2行目の場合) – umutto
IEや他のブラウザでもこのエラーが発生しています。他のbroswerを試してみてください。 –
私は以前のコメントを申し訳なく思っています。私は解決策を再構築しています。なぜそれが私にエラーを与える:Microsoft JScriptランタイムエラー: 'ValidateUserMail'は未定義です。今私は何かを変えることを覚えていませんが、私はそれに焦点を当てます。私は他のブラウザで試してみましたが、デバッガは添付されていないのでエラーは出ませんでしたが、何も起こりませんでした。私はレンダリングされたhtmlで答えを更新しています。もう一度、助けてくれてありがとう! – umutto