JQuery - я могу проверить отключенное поле? - PullRequest
14 голосов
/ 25 июля 2010

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

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

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

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

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

Ответы [ 3 ]

28 голосов
/ 25 июля 2010

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

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

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

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

2 голосов
/ 27 июля 2014

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

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() для нормального поведения

с наилучшими пожеланиями Gaetano

1 голос
/ 25 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...