2017-06-19 3 views
-2

私は複数の入力フィールドを持ち、バックボーンを使用しています。データIDを持つ複数の入力フィールドを生成しています。 data-idが順番に異なってくるたびに。jQueryを使用してArray内の異なるデータIDを持つ複数の入力フィールドの値を取得する方法は?

今、ユーザーが作成して入力したすべての入力フィールドの値を取得する必要があります。 (複数の入力フィールドを作成することができます値はクリックイベントとユーザーに移入されます。)

<div class="Title" data-id="title_1"> 
    <label>Additional Title</label> 
    <input type="text"> 
</div> 

<div class="Title" data-id="title_2"> 
    <label>Additional Title</label> 
    <input type="text"> 
</div> 

<div class="Title" data-id="title_3"> 
    <label>Additional Title</label> 
    <input type="text"> 
</div> 

<div class="Title" data-id="title_4"> 
    <label>Additional Title</label> 
    <input type="text"> 
</div> 

<div class="Title" data-id="title_5"> 
    <label>Additional Title</label> 
    <input type="text"> 
</div> 
+0

これまでに何を試みましたか? –

+0

クラスで値を取得してからarray.mapを使用しようとしましたが、data-idで値が必要なので、バックボーンコレクションと同期することができます – smvd08

+1

[mcve]を含めてください。 –

答えて

2

ユーザーにアクセスできるように、すべてのテキストボックスに同じクラスを与えるには、ここでは、テキストボックスに容易

を生成し、あなたはHTMLですここで

<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 

<div class="Title" data-id="title_1"> 
    <label>Additional Title</label> 
    <input class="textfield" type="text" value="val 1"> 
</div> 

<div class="Title" data-id="title_2"> 
    <label>Additional Title</label> 
    <input class="textfield" type="text" value="val 2"> 
</div> 

<div class="Title" data-id="title_3"> 
    <label>Additional Title</label> 
    <input type="text" class="textfield" value="val 3"> 
</div> 

<div class="Title" data-id="title_4"> 
    <label>Additional Title</label> 
    <input type="text" class="textfield" value="val 4"> 
</div> 

<div class="Title" data-id="title_5"> 
    <label>Additional Title</label> 
    <input type="text" class="textfield" value="val 5"> 
</div> 

はあなたのjqueryのです

$(".textfield").each(function(index) { 
    debugger; 
    console.log($(this).closest('div').attr('data-id')); 
    console.log(index + ": " + $(this).val()); 
}); 
-1

https://jsfiddle.net/L3xyL4oe/

//bind selector methods to easy to use functions 
let $$ = document.querySelectorAll.bind(document); 
let $ = document.querySelector.bind(document); 

//setup function to quickly change dom list to an array 
let toArray = (domList) => [].slice.call(domList); 

//when button is clicked 
$("button").addEventListener('click',() => { 
    //get all the inputs into an array 
    let inputs = toArray($$(".Title[data-id^='title'] > input")); 

    //iterate through the array 
    for (let input of inputs) { 
    //for each input with a value, alert the value 
    if (input.value) alert(input.value); 
    } 
}); 
+0

あなたがdownvoteに行くなら、私は理由を感謝したいと思います。これは尋ねられたことを行います。 – zfrisch

+0

こんにちはzfrisch、私は答えをdownvotedしていない – smvd08

関連する問題