簡體   English   中英

如何從輸入創建數組?

[英]How to create an array from inputs?

我創建了多個輸入字段:

<div class="form-text-field first-name field-group">
    <input data-index="1" type="text" id="firstName1" class="signup-input firstName" name="first[1]" placeholder="">
</div>
<div class="form-text-field email field-group">
    <input type="text" data-index="1" id="inputMail1" class="signup-input text-value ignore" name="email[1]"  placeholder="${message(code:"signup.redesign.placeholder.eg.email")}"/>
    <span class="common-sprite disNone sign-up-cross first clone"></span>
</div>

我在JS文件中有一個代碼可以克隆每個輸入。

我必須根據輸入的值創建一個數組(一個用於電子郵件,一個用於名字)。

這是函數:

var arrEmail = []
var arrName = []
function add() {
    var obj = {};
    var partner = {}
    $('.email input[type="text"]').each(function() {
        obj[this.data-index] = this.value;
    });
    arrEmail.push(obj)
    $('.first-name input[type="text"]').each(function() {
        partner[this.data-index] = this.value;
    });
    arrName.push(partner)
    console.log(arrEmail[0])
}

我沒有成功獲得此代碼中的數組。 我如何解決它?

你有一些錯誤。

  1. $('.email input[type="text"]').each(function({ 。您忘記了右括號。
  2. 我不明白您為什么嘗試以這種奇怪的方式獲得價值。 您包括了jQuery。 用它!

我修復了您的代碼。

var arrEmail = [];
var arrName = [];

function add() {
    var obj = {};
    var partner = {};
    $('.email input[type="text"]').each(function(item) {
        obj[$(this).data('index')] = $(this).val();
    });
    arrEmail.push(obj);

    $('.first-name input[type="text"]').each(function() {
        obj[$(this).data('index')] = $(this).val();
    });
    arrName.push(obj);

    console.log(arrEmail);
    console.log(arrName);
}

$('#test').on('click', add);

jsFiddle演示

更新#1

尚未顯示所有條件。 修復。

使用$(this).data('index')代替this.data-index

您可以使用單個數組來處理:

var myUsers= [];//this might be object that you store the user information

$('.first-name input[type="text"]').each(function(item) {
    //first create the user information
    var myUser = new Object();
    myUser.Username = $(this).val();
    myUser.Email= $(this).next().val();

    //then add the user information to the myUsers array
     myUsers.push(myUser );
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM