Как ссылаться на ввод в форме в jQuery

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

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

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

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

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

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

...

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

Зачем тратить деньги на то, что можно получить бесплатно на веб-сайте jQuery? :-)

Tomalak 30.10.2008 22:47

Не нашел информации, которая так полезна. Официальная документация хороша или вы говорите о примерах / руководствах

Brian G 30.10.2008 22:51

Я имею ввиду официальные документы. Я отказался от идеи покупать книги на такие непостоянные темы, как эта. Кроме того, в книгах отсутствует важная особенность: в них нельзя выполнять полнотекстовый поиск (кроме «глазами», то есть).

Tomalak 30.10.2008 22:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
8 137
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Похоже, вам нужен 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

http://docs.jquery.com/Each

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

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

Ответ принят как подходящий
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 не назначается. Когда я пытаюсь вывести предупреждение, чтобы проверить его, появляется сообщение [Объект объект]

Brian G 31.10.2008 16:21

Другие вопросы по теме