Я создаю несколько текстовых полей во время выполнения, и я хотел бы изменить цвет текстового поля, если текстовое поле оставлено пустым, и пользователь отправляет форму.
Я использую код позадиподход, это код, который я написал в файле .aspx.cs
textBoxObj - это объект текстового поля, который я создаю во время выполнения, и это объект, для которого я хочу пустую проверку.
CustomValidator customValidatorObj = new CustomValidator();
customValidatorObj.ControlToValidate = textBoxObj.ID;
customValidatorObj.ClientValidationFunction = "changeColorofTextBox";
и я написал небольшой фрагмент Javascript в файле .aspx, который выглядит следующим образом (я еще не написал логику для изменения цвета, просто пока делаю ее недействительной)
<script type="text/javascript">
function changeColorofTextBox(oSrc, args) {
if (args.Value.length > 0) {
args.IsValid = true;
}
else {
args.IsValid = false;
}
}
</script>
В функции отправки нажмите кнопку формы, у меня есть эта проверка, если (Page.IsValid), а затем отправить форму.Однако даже если текстовое поле пусто, форма отправляется.Кажется, что функция даже не ударил.У вас есть указания на то, что я делаю неправильно?Я в порядке с проверкой на стороне клиента или на стороне сервера, в зависимости от того, что работает.
EDIT
Я получил ошибку, я просто должен был сделать это
customValidatorObj.ValidateEmptyText = true;
и он начал работать .. Спасибо, я не осознавал, что класс customValidator не пытается проверить, если элемент управления пуст.
Но я снова застрял: (
В форме у меня много текстовых полей. Предположим, пользователь ввел текст для 3 из текстовых полей и оставил 2 из них пустыми, как мне найти идентификаторы текстовых полей, чтобы я мог изменить цвет толькопустые. Или, как я могу написать код в JavaScript, чтобы узнать идентификатор элемента управления во время выполнения?
Я знаю, что мы должны сделать это
document.getElementById (CONTROLIDGOESHERE) .style.backgroundColor = "red";
но как мне получить значение CONTROLIDGOESHERE для передачи в функцию getElementById?
Любые указатели, спасибо.