Как определить, включено поле или нет

0

У меня есть следующий скрипт, чтобы отобразить "*" рядом с любыми обязательными полями:

$('input[data-val-required]').after('<span class='my-class'>*</span>')

Но могу ли я определить дополнительную фильтрацию, чтобы "*" отображался только в том случае, если верно следующее:

  1. поле является полем ввода с обязательным значением данных?
  2. поле не отключено или не доступно только для чтения?

благодаря

Теги:
razor
jquery-selectors

3 ответа

3
Лучший ответ

Пытаться

:не()

Имеет селектор атрибутов [имя]

$('input[data-val-required]:not([disabled],[readonly])').after('<span class="my-class">*</span>')

Демо-версия скрипта


Обновление после комментария OP

Демо-версия скрипта

Селектор выбора атрибута [name = "value"]

$('input[data-val-required]:not([disabled],[readonly],[type="hidden"])').after('<span class="my- class">*</span>')
  • 0
    я попытался добавить [скрытый] внутри not ([отключено], [только для чтения], [скрыто]), но рядом с любым скрытым полем будет отображаться *, можете ли вы посоветовать, как можно также исключить скрытые поля из сценария?
  • 1
    @johnG Вы говорите о <input type="hidden"/> ?
Показать ещё 4 комментария
0

Вы можете использовать filter():

$('input').filter(function() {  
    return $(this).data('val-required') && !$(this).prop('disabled') && !$(this).prop('readonly');
}).after('<span class="my-class">*</span>');
0

Попробуй использовать:

$('input[data-val-required]').each(function() {
    if($(this).is(':disabled')) {
        $(this).after('<span class="my-class">*</span>')
    }
});

Ещё вопросы

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