JQuery - могу ли я проверить отключенное поле?

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

Поле отображения отключено = "отключено", чтобы заставить пользователя использовать всплывающее окно, а не вводить значение в поле.

Мне нужно, чтобы пользователь выбирал имя. Я использую плагин проверки jQuery и Jorn.

Выполнение обязательного: true в отключенном поле, похоже, не срабатывает, если значение пустое.

Есть идеи, как это решить?

Ответы

Ответ 1

Вместо того, чтобы отключить его, попробовали ли вы его читать?

<input type="text" readonly="readonly" />

Я помню, как много лет назад, что отключенные поля не представлены формами и, следовательно, вероятно, не проверены

Вот W3C HTML4 Spec по этой теме.

Ответ 2

Согласно предыдущему предложению, возможным решением может быть:

var _valid = $.fn.valid;
$.fn.valid = function (alsoDisabled) {
    var alsoDisabled = alsoDisabled || false;
    if (alsoDisabled) {
        this.find('[disabled]').prop('disabled', false);
    }
    var retVal = _valid.apply(this);
    if (alsoDisabled) {
        this.find('[disabled]').prop('disabled', true);
    }
    return retVal;
};


и поэтому вы можете вызвать действительный метод с необязательными аргументами:    $('#form').valid(true), чтобы проверить также отключенное поле или   $('#form').valid() для нормального поведения

С наилучшими пожеланиями Гаэтано

Ответ 3

почему бы не включить его только для проверки, а затем отключить его снова... используя .attr('disabled',''), чтобы включить его, а затем .attr('disabled','disabled'), чтобы отключить его снова, это произойдет так быстро, что вы даже не заметите его.