сериализация из элемента таблицы, а не всей формы - PullRequest
10 голосов
/ 28 сентября 2011

Попытка сериализации только элементов из определенной таблицы, но она возвращает результат, только если я делаю целое Form

в приведенном ниже коде, я хочу ajax только элементы в tbl2

<form>
 <input type="text" id="tb1" name="tbl1"/>
  <table name="tbl1">
   <tr><td><input type="text" name="tb2"/></td></tr>
 </table>
 <table name="tbl2">
   <tr><td><input type="text" name="tb3"/></td></tr>
   <tr><td><input type="text" name="tb4"/></td></tr>
 </table>
</form>

код

var params = $("#tbl2").serialize();

var resp = $.ajax({
    async: false,
    type: "POST",
    url: AppRoot + "webhandlers/postback.ashx",
    data: params
});

Ответы [ 3 ]

20 голосов
/ 28 сентября 2011

Прежде всего, <table> не может иметь атрибут name, и даже если бы он мог, селектор идентификатора jQuery (#) не соответствовал бы ему.

Если вместо этого использовать id (<table id="tbl2">), он будет работать следующим образом:

var params = $("#tbl2 :input").serialize();

Селектор :input выбирает все элементы формы (здесь, внутри * 1014)*), это необходимо, потому что serialize() будет работать только на них.

Пожалуйста, ознакомьтесь с моей jsFiddle Demo .

1 голос
/ 28 сентября 2011

вы можете использовать метод serializeArray, который даст вам массив полей ввода и может использоваться с данными.

var params = $("#tbl2 input").serializeArray();
1 голос
/ 28 сентября 2011

вы не можете serialize таблицу - этот метод не применяется к объектам DOM такого типа, только формы и поля форм могут быть сериализованы.

Если вы действительно хотите сделать то, что предлагаете, вам нужен правильный селектор, чтобы выбрать только потомки tbl2, которые также являются элементами формы, а затем вам придется сериализовать каждый из них вручную. кто-то сделал это в другом вопросе, здесь: сериализовать без формы?

лучшим способом может быть отключение всех элементов формы, которые НЕ находятся в интересующей вас таблице - вам понадобится селектор, чтобы выбрать все элементы формы, которые не являются дочерними элементами tbl2 - и Затем сериализовать форму. отключенные элементы будут опущены.

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