Индикатор обязательного поля ASP.NET MVC - PullRequest
8 голосов
/ 10 января 2011

Для полей в моем представлении ASP.NET MVC, которые были приписаны как обязательные, есть ли у фреймворка возможность автоматически отображать какой-либо индикатор того, что поле помечено как обязательное в метаданных?

Ответы [ 6 ]

14 голосов
/ 10 января 2011

Должно быть в состоянии сделать это с помощью CSS, поскольку MVC3 добавляет в элемент эти пользовательские атрибуты:

 <input data-val="true" data-val-required="The Username field is required." id="Username" name="Username" type="text" value="" />

Вы можете отключить data-val-required в CSS следующим образом:

введите [data-val-required] {background: red} или установите фоновое изображение звездочки и т. Д.

12 голосов
/ 15 декабря 2011

Я так и сделал, потому что мои обязательные поля должны быть динамическими (определены в файле конфигурации)

Добавьте в конце вашего просмотра:

    <script type="text/javascript">
        $('input[type=text]').each(function () {
            var req = $(this).attr('data-val-required');
            if (undefined != req) {
                var label = $('label[for="' + $(this).attr('id') + '"]');
                var text = label.text();
                if (text.length > 0) {
                    label.append('<span style="color:red"> *</span>');
                }
            }
        });
    </script>
4 голосов
/ 22 сентября 2014

Я изменил ответ Ренато Сайто, чтобы включить больше типов полей (все типы ввода и списки выбора) и использовать пространство имен jQuery вместо общего $. Вот моя ревизия:

<script type="text/javascript">
// add indicator to required fields
jQuery('input,select').each(function () {
    var req = jQuery(this).attr('data-val-required');
    if (undefined != req) {
        var label = jQuery('label[for="' + jQuery(this).attr('id') + '"]');
        var text = label.text();
        if (text.length > 0) {
            label.append('<span style="color:red"> *</span>');
        }
    }
});
</script>
4 голосов
/ 08 июня 2013

Вот тот, который прикрепит красную звездочку к правой стороне чего-либо с атрибутом «data-val-required».

<script type="text/javascript">
    $('[data-val-required]').after('<span style="color:red; font-size: 20px; vertical-align: middle;"> *</span>');
</script>
1 голос
/ 29 февраля 2012

Добавление атрибута html недостаточно. Это приведет только к ошибке проверки JavaScript. Если вы хотите указать, что поле является обязательным, вы, вероятно, захотите добавить к нему звездочку. Вы можете сделать это с помощью метода расширения HtmlHelper. Вы можете найти подробное объяснение здесь

Указание обязательного поля в приложении MVC

0 голосов
/ 06 ноября 2014

Небольшая модификация сделана с моей стороны.На самом деле у меня были первичные ключи (Identity Columns в БД).Это я не хотел выделять.Поэтому я использовал ниже фрагмент кода, чтобы выбрать только input[type=text] поля, которые имеют обязательный атрибут в аннотации.

$("[data-val-required]").not(":hidden").not(":radio").not(":checkbox").after('<span style="color:red;max-width:10px;min-height:30px;">*</span>');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...