从动态创建的输入和选择字段中获取值

时间:2014-12-15 11:41:14

标签: javascript jquery html

所以我有这个页面,人们将能够动态创建输入和选择字段,因为我不知道有多少输入和选择字段,他们会创建我有点想法如何得到它们中的每一个的值,所以我可以通过ajax将它们发送到我的php页面。

我认为也许一个好主意是尝试遍历每个div并获取选择和输入字段的值,但我不知道如何做到这一点。这就是用户创建了几个输入和选择字段后html的看法:

<div id="izmena_arhitekte">
        <div class="headlinea">Arhitekte</div>
        <div class="form-group">
    <input type="text" class="form-control upis-style" placeholder="Ime i prezime" value="Zeljko Bogicevic" id="arh_ime1"> <i title="Obrisi Arhitektu" class="fa fa-times fa-2x deleteArh"></i>
    <select style="margin-top:-18px;" id="tip1" class="form-control upis-style">
      <option selected="" value="Projektant">Projektant</option>
      <option value="Pomocni">Pomocni</option>
      <option value="Nadzor">Nadzor</option>
    </select>
    </div><div class="form-group">
    <input type="text" class="form-control upis-style" placeholder="Ime i prezime" value="Nikola Kojic" id="arh_ime2"> <i title="Obrisi Arhitektu" class="fa fa-times fa-2x deleteArh"></i>
    <select style="margin-top:-18px;" id="tip2" class="form-control upis-style">
      <option value="Projektant">Projektant</option>
      <option selected="" value="Pomocni">Pomocni</option>
      <option value="Nadzor">Nadzor</option>
    </select>
    </div>
    <div class="form-group">
    <input type="text" class="form-control upis-style" placeholder="Ime i prezime" value="" id="arh_ime3"> <i title="Obrisi Arhitektu" class="fa fa-times fa-2x deleteArh"></i>
    <select style="margin-top:-18px;" id="tip3" class="form-control upis-style">
      <option value="Projektant">Projektant</option>
      <option value="Pomocni">Pomocni</option>
      <option value="Nadzor">Nadzor</option>
    </select>
    </div>   
    </div>  

4 个答案:

答案 0 :(得分:2)

您可以使用jQuery的$.each();功能。

$(function() {
    var collection = $('.form-group');
    var data = [];
    $.each(collection, function(idx, obj) {
        data.push({'input': $(obj).find('input').val(), 'select': $(obj).find('select').val()});
    });
    console.log(data);
});

答案 1 :(得分:0)

为每个输入或选择动态添加的字段提供一个类。例如,让我们说我给的是班级名称&#34; inputField&#34;。然后访问所有值:

var arr=[];
$(".inputField").each(function(){
    arr.push($(this).val());
});

所以现在arr数组将包含所有动态插入的输入字段的值。

答案 2 :(得分:0)

基本方法

  • 使用.each()循环遍历每个div
  • 使用find()
  • 选择该div中感兴趣的字段
  • 将数据放入数组
  • 理想情况下,在输入中使用类而不是id,然后更容易选择。

代码

var data = [];
$('div.form-group').each(function () {
    data.push({
        name: $(this).find('input').val(),
        project: $(this).find('select').val()
    });
});
console.log(data);

答案 3 :(得分:0)

使用javascript,您可以使用querySelectorAll找到所有字段:

var a = document.querySelectorAll('input[type=text]');
    for (var i = 0;i<a.length;i++){
    console.log(a[i].value);
    }
    var b = document.querySelectorAll('option:checked');
    for (var x = 0;x<b.length;x++) {
    console.log(b[x].value);    
    }
});

例如,你可以把它放在一个EventListener函数中,点击一个按钮,或者你想听的任何事件,获取所有条目