【发布时间】:2011-07-17 16:49:22
【问题描述】:
所以我有一个我正在使用 ClientValidationFunction 捕获它的事件。
我遇到的问题是,我正在用它做一些过程,这个过程的结果应该确定 args.IsValid 是真还是假。但我正在捕捉的结果是在回调中,我似乎无法找到访问 args 的方法。
我已经在全局范围内定义了一个 var Args 并试图从那里获取值;没收到。
我尝试通过 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";
【问题讨论】:
标签: javascript asp.net validation callback customvalidator