Здравствуйте. Пишу CustomValidator. Написал функцию, которая должна проверять, что значение в заданном TextBox не должно совпадать с другими TextBox. Она работает некорректно. В чем может быть проблема?
function IsUnique1(source, args) {
if (args.Value == "") {
args.IsValid = false;
} else {
if (
!args.Value.Equals(OrangeBox.Text) &&
!args.Value.Equals(RedBox.Text) &&
!args.Value.Equals(WhiteBox.Text) &&
!args.Value.Equals(GreenBox.Text)
) {
args.IsValid = true;
} else {
args.IsValid = false;
}
}
}
Я бы написал валидатор так: задал бы объект со значениями полей arrBox = [...]. А потом бы передавал этот массив и значение которое надо провалидировать.
var arrBox = [
{id:'OrangeBox', value: 1},
{id:'RedBox', value: 2},
{id:'WhiteBox', value: 3},
{id:'GreenBox', value: 4}
];
var value = 5;
function isUnique(arr, val) {
return !arr.find(function (item) {
return item.value == val;
});
}
var r = isUnique(arrBox, value);
console.log(r)
А у вас получается избыточный код, который попробуй ещё поддержи. Потом добавиться, какой то BlackBox, потому будет аналогичная форма, но не будет RedBox, например, и надо буде писать новую функцию IsUnique2.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости