Селекторы jquery и disabled = 'отключен' - PullRequest
0 голосов
/ 18 августа 2011

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

<input type="text" name="MYNAME" id="preXXXX" disabled='disabled' value="my Value"  />

$.each($('input[id^="pre"], select[id^="pre"]').serializeArray(), function() {

Ответы [ 4 ]

2 голосов
/ 18 августа 2011

Запрещенное поле ввода - это , выбранное в селекторе, однако оно не включено, когда форма сериализуется (serializeArray()), так как не является «успешным контролем» . Это поведение описано в jQuery-документах .

1 голос
/ 18 августа 2011

HTML5 spec указывает, что отключенные поля формы должны не быть отправлены с формой (3.1 bullet # 2).

jQueryЛучше всего следовать спецификации до ожидаемых результатов.

Если вы хотите, чтобы данные передавались с формой, но вы хотите запретить пользователю редактировать значение, вам следуетиспользуйте readonly="readonly" вместо disabled="disabled".Только для чтения поля, пользователь может читать их, но не редактировать.

Что касается выбора, вам просто нужно использовать фабричный метод jQuery для выбора:

$('input[id^="pre"], select[id^="pre"]')

И вы можете перебирать каждый элемент, используя функцию each:

$('input[id^="pre"], select[id^="pre"]').each( function( index, element ){
  ...do stuff...
});
0 голосов
/ 18 августа 2011

Попробуйте вместо этого. Вы можете использовать each так:

$('input[id^="pre"], select[id^="pre"]').each(function() { ... });
0 голосов
/ 18 августа 2011

Если вообще вы хотите отправить отключенные поля ввода, вы можете попробовать что-то вроде этого

//This gives an array of name/value pair object.
var inputArray = $('input[id^="pre"], select[id^="pre"]').serializeArray();

//Now look only for disabled input fields and push into inputArray and then process that.
$("input:disabled").each(function(){
   inputArray.push({ name: this.name, value: this.value });
});

//Now process inputArray which contains all the input fields name/value pair
$.each(inputArray, function() {

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