Я создаю несколько текстовых полей во время выполнения, и я хотел бы изменить цвет текстового поля, если текстовое поле осталось пустым , и пользователь отправляет форму.Изменение цвета текстового поля с помощью CustomValidator
Я использую код за подходом, это код, который я написал в .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 = истина;
и он начал работать .. Спасибо, я не понял, что класс customValidator не пытается проверить, является ли элемент управления пустым.
Но я снова застрял :(
В форме, у меня есть много текстовых полей. Предположим, пользователь ввел текст для 3 текстовых полей и оставил 2 из них пусто, как я могу найти текст коробка идентификаторы, так что я могу изменить цвет только пустых из них. или, как я могу писать код в JavaScript, чтобы узнать идентификатор элемента управления во время выполнения?
Я знаю, что мы должны сделать это
документа .getElementById (CONTROLIDGOESHERE) .style.backgroundColor = "red";
, но как получить значение CONTROLIDGOESHERE, чтобы перейти к функции getElementById?
Любые указатели, спасибо.