Javascript ASP.Net RequiredFieldValidator自定义EvaluationFunction属性

Javascript ASP.Net RequiredFieldValidator自定义EvaluationFunction属性,javascript,asp.net,validation,Javascript,Asp.net,Validation,我的自定义ASP.Net RequiredFieldValidator呈现如下标记 var af1_ctl00 = document.all ? document.all["af1_ctl00"] : document.getElementById("af1_ctl00"); af1_ctl00.controltovalidate = "af1_af1_txt"; af1_ctl00.display = "None"; af1_ctl00.evaluationfunction = "Requir

我的自定义ASP.Net RequiredFieldValidator呈现如下标记

var af1_ctl00 = document.all ? document.all["af1_ctl00"] : document.getElementById("af1_ctl00");
af1_ctl00.controltovalidate = "af1_af1_txt";
af1_ctl00.display = "None";
af1_ctl00.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
af1_ctl00.initialvalue = ""; 
但是,似乎无法设置evaluationfunction属性。我需要这样做来调用一些自定义脚本

我试过以下方法

  • 在呈现控件和属性时添加新属性
  • 调用后跟属性的RemoveAttribute.Add
  • 试图通过javascript重置它
似乎什么都不管用


如果我能得到一个在c代码中工作的解决方案,在渲染之前设置属性,这将是我所做的最好的解决方案。

通过执行以下操作来解决

ASP.Net验证程序实际上在页面上定义了一个跨度,这是Javascript中的DOM对象。然后将属性添加到该对象。因此,在ASP.Net生成的代码中可以看到类似的内容

af1_ctl00.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
然后,您可以将一些javascript注入到您的页面中,使用您的代码隐藏中的page.ClientScript.Register(..)执行类似的操作

function NewValidationFunction() {
    return (1 == 1);
}

var val = document.getElementById('af1_ct100');
val.evaluationfunction = NewValidationFunction;

验证函数现在已更改为使用您的自定义函数。

通过执行以下操作解决

ASP.Net验证程序实际上在页面上定义了一个跨度,这是Javascript中的DOM对象。然后将属性添加到该对象。因此,在ASP.Net生成的代码中可以看到类似的内容

af1_ctl00.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
然后,您可以将一些javascript注入到您的页面中,使用您的代码隐藏中的page.ClientScript.Register(..)执行类似的操作

function NewValidationFunction() {
    return (1 == 1);
}

var val = document.getElementById('af1_ct100');
val.evaluationfunction = NewValidationFunction;
验证功能现在已更改为使用自定义功能。

请参阅中的我的答案请参阅中的我的答案