Я не уверен, нужно ли вам это по-прежнему или нет, но я полагаю, что нет, поскольку это без ответа ...
Ну, вы не можете сделать это напрямую, однако вы можете скрыть оригинальную функцию, котораяотвечает за проверку CompareValidator и представляет новую.Это возможно потому, что все функции проверки происходит от ASP.NET в глобальном масштабе, который является ... спорно, но полезно в этом случае.
1004 * Вы можете найти следующий модуль, получить работу.Это выставляет вам два метода.Сначала называется
addFunction позволяет добавить одну или несколько функций для пользовательской проверки.Эта функция должна возвращать
Boolean и она использует три параметра
Объект валидатора ,
TargetObject и
CompareObject соответственно.Второй, называемый
disableOldFunction , позволяет полностью избавиться от старой функции проверки, которая вызывается модулем, если все ваши функции действительны.
var MyModules = {};
MyModules.CompareValExtension = function ()
{
var functions = new Array();
var oldFunc = null, disabled = false;
function myCompareValidatorEvaluateIsValid(val)
{
var valid = true;
if (oldFunc && functions.length)
{
for (i in functions)
{
valid = functions[i](val, document.getElementById(val.controltovalidate), document.getElementById(val.controltocompare));
if (!valid) { break; }
}
if (!disabled && valid)
{
valid = oldFunc(val);
}
}
return valid;
}
if (typeof CompareValidatorEvaluateIsValid != 'undefined')
{
oldFunc = CompareValidatorEvaluateIsValid;
window.CompareValidatorEvaluateIsValid = myCompareValidatorEvaluateIsValid;
}
var me = {};
me.addFunction = function (func) { if (typeof func == "function") { functions.push(func); } }
me.disableOldFunction = function () { disabled = true; }
return me;
} ();
Пример использования:
MyModules.CompareValExtension.addFunction(function (val, elem, comp)
{
return elem.value == "my value";
});
MyModules.CompareValExtension.disableOldFunction();
Предупреждение: Пожалуйста, поместите этот модуль где-нибудь внизу страницы, чтобы убедиться, что сценарии проверки по умолчанию уже существуют.Вы также можете немного переписать модуль, чтобы отложить инициализацию, пока документ не будет готов.