Пользовательская проверка MVC 5 Проверка перед следующей вкладкой

2

Я хотел бы, чтобы пользовательская проверка выполнялась перед следующей вкладкой или предотвращала переход к следующей вкладке, если пользовательская проверка не соответствует требованиям, подобным другим полям Изображение 174551

Модель

[EnsureMinimumElementsAttributeDropOff(ErrorMessage = "You must supply at least one Drop Off Date")]
public virtual List<DropOffDate> DropOffDates { get; set; }

Пользовательская проверка

public class EnsureMinimumElementsAttributeDropOff : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        var list = value as List<DropOffDate>;

        if (list != null)
        {
            foreach (var item in list)
            {
                // check if at least 1 row is filled for Drop-off Date by user
                if (!string.IsNullOrEmpty(item.Date) && !string.IsNullOrEmpty(item.StartTime)
                    && !string.IsNullOrEmpty(item.EndTime))
                    return true;

            }
        }
        return false;
    }
}

Моя пользовательская проверка работает, но она проверяется только после того, как страница будет отправлена /отправлена.

Заранее спасибо

  • 0
    Привет, ты пробовал ответ ниже?
Теги:
validation
asp.net-mvc-5
data-annotations

1 ответ

0

Вам нужно добавить к нему проверку на стороне клиента.

Это приведет к проверке в браузере, прежде чем он отправится на сервер, предотвращая сообщения, если форма недействительна.

Гиды:

http://www.itorian.com/2013/08/enabling-client-side-validation-on.html?m=1

http://blog.andrei.rinea.ro/2013/06/28/building-client-javascript-custom-validation-in-asp-net-mvc-4-using-jquery/

https://hossamhassan47.wordpress.com/2012/12/09/mvc-4-0-how-to-support-client-side-custom-validation/

Чтобы активировать проверку при изменении вкладок, действуйте()

if(!$("#form_id").valid())
        // keep on same tab

Это подтвердит форму и вернет ее состояние на основе того, что вы можете разрешить/запретить им изменять вкладки и решать проблемы.

Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню