Простой вопрос о jQuery.
У меня есть несколько одинаковых форм (кроме названия) на одной странице с несколькими скрытыми входами в каждой. Я хочу сослаться на них, используя имя формы, а затем имя ввода. (имена входов на моей странице не уникальны)
Так например:
var xAmt = $('#xForm'+num).('#xAmt');
Я действительно хочу передать эти значения в AJAX POST
$.ajax({
url: "X.asp",
cache: false,
type: "POST",
data: "XID=xID&xNumber=xNum&xAmt=xAmt",
...
Если я смогу получить значения в вызове AJAX еще лучше.
Не нашел информации, которая так полезна. Официальная документация хороша или вы говорите о примерах / руководствах
Я имею ввиду официальные документы. Я отказался от идеи покупать книги на такие непостоянные темы, как эта. Кроме того, в книгах отсутствует важная особенность: в них нельзя выполнять полнотекстовый поиск (кроме «глазами», то есть).



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Похоже, вам нужен formSerialize() (или даже ajaxSubmit()) из Плагин форм jQuery.
Отредактировано:
Вам нужно начать с того, чтобы выделить их все, а затем вы сможете с ними работать.
Чтобы получить доступ только к элементам 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
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()
});
Обновлено:
Это дает вам максимальную гибкость, и если изменятся только входные значения (а переменные строки запроса не изменятся), вы можете передать все, что захотите, в качестве значения.
Здесь уже был дан ответ о гибком способе сделать это, но вы также можете просто заставить его работать с вашим текущим кодом. (Простите меня, если это было слишком простым для того, что вы ищете.)
Выполните детализацию от уникального имени формы с помощью селектора потомков CSS (пробел):
var xAmt = $('#xForm'+num+ ' #xAmt').val();
Повторите эти действия для каждого необходимого значения и вызовите $ .ajax, как вы это делаете.
Когда я это делаю, xAmt не назначается. Когда я пытаюсь вывести предупреждение, чтобы проверить его, появляется сообщение [Объект объект]
Зачем тратить деньги на то, что можно получить бесплатно на веб-сайте jQuery? :-)