Создание массива в Jquery

Мне нужна срочная помощь с jquery, у меня есть несколько полей ввода, и я хочу получить их значение в виде массива, проблема в том, что все поля ввода будут создаваться динамически с помощью кнопки «Добавить больше», поэтому я не уверен, как многие из них были бы, мой код для создания динамических блоков здесь.

$(function(){
x = 0;
$('#addmore a').live("click",function(){
    x++;
    $('#addmore').append('<input type="text" id="fname_' + x + '"/></p>');      
    return false;
});

});

Теперь позвольте сказать, что человек нажал на addmore 3 раза, теперь у меня будет 3 поля ввода с # fname_1, # fname_2 и # fname_3. Теперь я хочу, чтобы все 3 значения ins $ ( function () { x = 0 ; $ ( '#addmore a' ). live ( "click" , function () { x ++; $ ( '#addmore' ). append. ( '<input type = "text" name = "fname []" id = "fname_' + x + '" /> </ p>' ); вернуть false ; }); }); это массив.

Спасибо

jquery,arrays,

0

Ответов: 3


Добавьте nameатрибут так:

$_POST['fname']

Когда вы отправите, у вас будет </p>, который содержит массив ваших автоматически сгенерированных полей ввода.

Кстати, ты уверен, что нужно ставить после каждого ввода ?!var values = $.map($("#addmore input[id^='fname_']"), function(element, index) { return element.value; });


Вы можете сделать это, не добавляя ничего (имя или класс) с таким кодом:

id

Живой тестовый кейс .

Это будет перебирать все входные данные, idначиная с «fname_», и отображать их значение в одном массиве.


Если это не имеет ничего общего с php:

$(function(){
x = 0;
$('#addmore a').live("click",function(){
    x++; //Add "text-field" class 
    $('#addmore').append('<input type="text" class="text-field" id="fname_' + x + '"/></p>');      
    return false;
});

});


function getFieldValues(){
var r = [];
//Query text field class and push the values into an array
    jQuery( ".text-field").each(
        function(){
        r.push( this.value );
        }

    );

return r; //returns an array with the values
}
JQuery, массивы,
Похожие вопросы