Как удалить поле из определенной формы - PullRequest
1 голос
/ 29 августа 2011

Используя jquery, я хотел бы удалить скрытый ввод на основе селектора имени класса, но я просто хочу удалить это внутри одной конкретной формы?

что-то вроде этого:

$('.addToCartButton').click(function () {

    var form = $(this).closest('form');

    //remove all inputs with class name "test" inside of the form object above.

});

Каков наилучший способ сделать это?

Обновление


В качестве дополнительного вопроса, как я могу
1. Сначала прочитать каждый входной val () впеременная до того, как я ее удалю?
2. Получить первый элемент из метода find (так как он может вернуть несколько элементов)?

Ответы [ 3 ]

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

Попробуйте это

$('.addToCartButton').click(function () {

    var form = $(this).closest('form');
    var inputValues = {};

    //remove all inputs with class name "test" inside of the form object above.
    form.find("input.test").remove();

    //This loop will put all the input name/value pair into inputValues object
    form.find("input.test").each(function(){
       inputValue[$(this).attr("name")] = $(this).val();
    });

    //This will give you the first input element
    form.find("input.test:first");

});
2 голосов
/ 29 августа 2011

это должно сделать это

$(form).find('input.test').remove();  //remove all elements

http://api.jquery.com/remove/

продолжение:

var firstItem=$(form).find('input.test')[0]; // only the first item

var arr=[];  //this will build an array of the values
 $(form).find('input.test').each(function(){
    arr.push($(this).val());
  });

var arr=[];  //this will build an array of the names andvalues with a comma between
 $(form).find('input.test').each(function(){
    arr.push($(this).name + "," + $(this).val());
  });

перебрать все значения в массиве

for(var i=0;i<arr.length;i++){
    alert(arr[i]);
}
0 голосов
/ 29 августа 2011
 var form = $(this).closest('form');
form.remove('.class_name');
...