Я создаю некоторые текстовые поля во время выполнения, и я хотел бы изменить цвет текстового поля, если текстовое поле было оставлено пустым, и пользователь отправляет форму.
Я использую подход, основанный на коде, это код, который я написал в файле .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), затем отправьте форму. Однако даже если текстовое поле пусто, форма отправляется. Похоже, функция даже не запускается. Есть ли у вас какие-либо указания на то, что я делаю неправильно? Я в порядке с проверкой на стороне клиента или на стороне сервера, в зависимости от того, что работает.
РЕДАКТИРОВАТЬ
Я получил ошибку, я просто должен был сделать это
customValidatorObj.ValidateEmptyText = true;
и он начал работать. Спасибо, я не знал, что класс customValidator не пытается проверить, пуст ли элемент управления.
Но я снова застрял :(
В форме у меня много текстовых полей. Предположим, пользователь ввел текст для 3 текстовых полей и оставил 2 из них пустыми. Как мне найти идентификаторы текстовых полей, чтобы изменить цвет только пустых. или как я могу написать код в javascript, чтобы узнать идентификатор элемента управления во время выполнения?
Я знаю, что мы должны сделать это
document.getElementById(CONTROLIDGOESHERE).style.backgroundColor = "красный";
но как передать значение CONTROLIDGOESHERE в функцию getElementById?
Любые указатели, спасибо.