Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript在ASP.net中获取自定义验证程序控件的参数?_Javascript_Asp.net_Validation_Callback_Customvalidator - Fatal编程技术网

使用Javascript在ASP.net中获取自定义验证程序控件的参数?

使用Javascript在ASP.net中获取自定义验证程序控件的参数?,javascript,asp.net,validation,callback,customvalidator,Javascript,Asp.net,Validation,Callback,Customvalidator,所以我有一个例子,我用ClientValidationFunction捕捉它的事件 我遇到的问题是,我正在用它进行一些处理,这个处理的结果应该决定args.IsValid是真还是假。但我捕捉到的结果是在回调中,我似乎找不到访问args的方法 我已经定义了一个var Args globaly并试图从中获取值;不可能得到它 我试图通过userContext发送它;没有用(认为它只接受字符串) 我试图通过document.getElementById获取验证器,但找不到args属性。这是我认为最符合逻

所以我有一个例子,我用ClientValidationFunction捕捉它的事件

我遇到的问题是,我正在用它进行一些处理,这个处理的结果应该决定args.IsValid是真还是假。但我捕捉到的结果是在回调中,我似乎找不到访问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?
        }
}
  <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>

args中有两个属性
Value
IsValid

试试看

    myValidator.args.Value = '3434';
    myValidator.args.IsValid = true or false ;
试试这个:

function ValidateUserMail(oSrc, args) {
        var myField = document.getElementById('<%=RegisterUserWizardStep.ContentTemplateContainer.FindControl("Email").ClientID %>');
        PageMethods.IsMailAvailable(myField.value, function (result, userContext, methodName) { args.IsValid = result; });
    }
函数ValidateUserMail(oSrc,args){
var myField=document.getElementById(“”);
IsMailAvailable(myField.value,函数(result,userContext,methodName){args.IsValid=result;});
}

谢谢!!谢谢你极快的回答,但我得到了这个错误;Microsoft JScript运行时错误:无法设置属性“value”的值:对象为null或未定义(对于第一行),Microsoft JScript运行时错误:无法设置属性“IsValid”的值:对象为null或未定义(对于第二行),您是否在IE或其他浏览器中也遇到此错误。。请尝试其他broswer,然后您可以发布呈现的htmlI很抱歉前面的评论,我重建了解决方案,我不知道为什么,但它给了我一个错误:Microsoft JScript运行时错误:“ValidateUserMail”未定义。现在我不记得改变了什么,但我会专注于它。我在其他浏览器上试过,因为调试器没有连接,所以他们没有给我任何错误,但也没有发生任何事情。我正在用呈现的html更新答案。再次感谢你的帮助!谢谢你的帮助,我查了谷歌vith args.isvalid谢谢你,找到了一些可能有帮助的文章,并据此修改了代码!因此,我正在标记你的答案。干杯,谢谢你的回答!当我第一次看到它时,我的眼睛闪闪发光,但这没有什么区别,因为它仍然在函数标记中,它没有看到父函数中的参数。
function ValidateUserMail(oSrc, args) {
        var myField = document.getElementById('<%=RegisterUserWizardStep.ContentTemplateContainer.FindControl("Email").ClientID %>');
        PageMethods.IsMailAvailable(myField.value, function (result, userContext, methodName) { args.IsValid = result; });
    }