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')
, чтобы отключить его снова, это произойдет так быстро, что вы даже не заметите его.