У меня есть старый проект ASP.NET для переделки, и поскольку это мой первый контакт с ASP, я совершенно не понимаю его.
У меня есть цифровая форма с примерно 5-6 полями, из которых 4 встроены в валидаторы.
Каждый валидатор имеет прикрепленную функцию JavaScript на стороне клиента, поэтому, когда я теряю фокус из поля, он получает подтверждение, и если проверка не правильна, она дает красную звездочку, и вы выясняете, что что-то не так.
например, одна функция:
function validateEmail(src, arg) {
var email = document.getElementById('txtEmail_txt').value;
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
arg.IsValid = reg.test(email);
}
Теперь все в порядке, но требуется дополнительная «функциональность», которая, когда все обязательные поля действительны, активируется кнопка «продолжить».
Я делаю это, связывая элементы управления с моей функцией проверки в файле .ascx.cs:
txtEmail.textbox.AutoPostBack = true;
txtEmail.textbox.TextChanged += new EventHandler(requiredfields_TextChanged);
chkEmailCheck.AutoPostBack = true;
chkEmailCheck.CheckedChanged += new EventHandler(requiredfields_TextChanged);
Затем я установил значение Project в true, если мои требования верны:
void requiredfields_TextChanged(object sender, EventArgs e)
{
Project p = setProject();
btnSave.Enabled = EnableSubmitBtn(p);
}
И я хотел использовать
private bool EnableSubmitBtn(Project p)
{
if (p.ProcedureType == 2)
{
if ('CustomValidator3 is valid' && chkEmailCheck.Checked==true){
return true;
}
}
else
{
}
return false;
}
Теперь я не уверен, что можно получить ответ от CustomValidator3 (что-то вроде CustomValidator3.isValid == true, которое, кстати, не работает), или это единственный способ переписать функцию JavaScript в функции на стороне сервера, а затем проверить эту функцию?