Как ссылаться на вход в форме в jQuery - PullRequest
2 голосов
/ 30 октября 2008

Простой вопрос jQuery.

У меня есть несколько идентичных форм (кроме их имени) на одной странице с несколькими скрытыми вводами на каждой. Я хочу сослаться на них, используя имя формы, а затем введите имя. (входные имена не являются уникальными на моей странице)

Так, например:

var xAmt = $('#xForm'+num).('#xAmt');

Я действительно хочу передать эти значения в AJAX POST

    $.ajax({
      url: "X.asp",
      cache: false,
      type:  "POST",
      data:  "XID=xID&xNumber=xNum&xAmt=xAmt",

...

Если я смогу получить значения в вызове AJAX еще лучше.

Ответы [ 4 ]

2 голосов
/ 30 октября 2008
function queryX( args ) {
    var queryString = [ "XID=", args.XID, "&xNumber=", args.xNumber, "&xAmt=", args.xAmt ].join("");
    $.ajax({
        url: "X.asp",
        cache: false,
        type:  "POST",
        data:  queryString,
        success : function( data ) {
            return data;
        }
    });
}
var myReturnData = queryX({
    XID : $("input[name='XID']").val(),
    xNumber : $("input[name='xNumber']").val(),
    xAmt : $("input[name='xAmt']").val()
});

EDIT:

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

1 голос
/ 31 октября 2008

Гибкий способ сделать это уже здесь, но вы также можете просто заставить его работать с вашим текущим кодом. (Простите, если это было слишком просто для того, что вы ищете.)

Детализация по уникальному имени формы с помощью селектора CSS-потомка (пробел):

var xAmt = $('#xForm'+num+ ' #xAmt').val();

Повторите для каждого нужного значения и назовите $ .ajax точно так же, как вы делаете.

1 голос
/ 30 октября 2008

Похоже, что вы хотите formSerialize() (или даже ajaxSubmit()) из плагина jQuery форм .

0 голосов
/ 30 октября 2008

Отредактировано:

Вам нужно начать с того, что все они будут выделены, затем вы можете работать с ними.

Чтобы получить доступ только к элементам xForm #, вы можете сделать селектор вот так (вы должны проверить синтаксис, я не запускал это, это просто пример):

$('form input[name*='xAmt']  ').each(function(){ alert( $(this).val() ); alert( $(this).parent().attr('name') + $(this).parent().attr('id') ); });

Форма ввода [name * = 'xAmt'] означает выбрать любые элементы внутри формы, которые содержат термин xAmt. Вы также можете начинать с, заканчивать и т. Д. См. Ссылки ниже.

В каждом цикле вы можете получить доступ к каждому из них как $ (this). Вы можете получить доступ к его родительской форме как $ (this) .parent (), чтобы вы могли определить, в какой форме находится вход.

Вы можете построить данные в цикле или сделать что-то еще с ними, а затем создать сообщение.

см

http://docs.jquery.com/Selectors/attributeContains#attributevalue

http://docs.jquery.com/Selectors

http://docs.jquery.com/Each

http://docs.jquery.com/Attributes/attr#name

http://docs.jquery.com/Traversing/parent#expr

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