У меня есть решение этой проблемы.
Одна из основных проблем, с которыми я столкнулся на этой странице, это то, что она поддерживает AJAX, и мне нужно проверить динамически созданные элементы управления.
Мое решение, и оно работает правильно, при создании элемента управления я добавил к нему атрибут ввода, помечающий его как обязательный или нет, и другой атрибут, который помечает его как поле для проверки или нет?
Используя Javascript, я прохожу все входные теги с атрибутом «динамическое управление» и, основываясь на «подтвердить аттрибут», проверяю я это или нет. Просто, правда?
Пример кода:
При создании элемента управления отметьте его следующим образом
txtBox.Attributes.Add("Type", "T"); // Type of control.
txtBox.Attributes.Add("IsKeyField", "Y"); // Is dynamically created field.
txtBox.Attributes.Add("IsMandatory", "Y"); // Is mandatory or not?
код JavaScript
var inputControls = document.getElementsByTagName("input");
for(var i=0 ; i<inputControls.length ; i++)
{
if ( inputControls[i].getAttribute("IsKeyField") == "Y" )
{
if (inputControls[i].getAttribute("Type") == "T" || (inputControls[i].getAttribute("Type") == "C"))
{
if(inputControls[i].getAttribute("IsMandatory") == "Y")
{
if(inputControls[i].value == "")
{
errorMsg += "\n" + inputControls[i].getAttribute("KeyField_Name") + " is required.";
isValidated = false;
}
}
}
}
}
Конечно, вы можете вызвать этот код, нажимая нужную кнопку.
btnUpload.Attributes.Add("onClick", "javascript:if(!ValidateMandatoryFields()) return false;");