所以我有一个页面,人们可以随机生成一些输入字段,所以我需要获取每个输入的值并将其发送到我的php页面。
棘手的部分是我不知道最后会有多少输入,因此我需要某种循环来选择所有值。这是我现在所拥有的,一切似乎都没问题,我确实设法获得所有输入字段。但由于某些原因,每个输入字段的值似乎都未定义,有人知道为什么吗?
$(document).on('click', '#izmena', function(){
$(function() {
var collectionA = $('.crtezInput');
var datas = [];
$.each(collectionA, function(idx, obj) {
datas.push({ 'input': $(obj).find('input').val() });
});
$.each(datas, function(idx, obj) {
crtezNaziv += obj.input +",";
});
console.log(crtezNaziv);
});
<div id="izmena_crteza">
<div class="headlinea">Crtezi</div>
<div class="crtez-form">
<input type="text" style="width:80%; margin-bottom:10px;" class="form-control upis-style crtezInput" placeholder="Naziv" value="Glavni izgled">
<i title="Obrisi Arhitektu" style="margin-top: -18px;" class="fa fa-times fa-2x deleteArh"></i>
<input type="text" style="margin-top:-20px; width:80%; margin-bottom:10px;" class="form-control upis-style crtezInput" placeholder="Razmera" value="1:100">
<input type="text" style="width:80%; margin-bottom:10px;" class="form-control upis-style crtezInput" placeholder="Tehnika" value="Tus">
</div>
<div class="crtez-form">
<input type="text" style="width:80%; margin-bottom:10px;" class="form-control upis-style crtezInput" placeholder="Naziv" value="Izgled sa strane">
<i title="Obrisi Arhitektu" style="margin-top: -18px;" class="fa fa-times fa-2x deleteArh"></i>
<input type="text" style="margin-top:-20px; width:80%; margin-bottom:10px;" class="form-control upis-style crtezInput" placeholder="Razmera" value="1:100">
<input type="text" style="width:80%; margin-bottom:10px;" class="form-control upis-style crtezInput" placeholder="Tehnika" value="Tus">
</div>
<div class="crtez-form">
<input type="text" style="width:80%; margin-bottom:10px;" class="form-control upis-style crtezInput" placeholder="Naziv" value="Presek a-b">
<i title="Obrisi Arhitektu" style="margin-top: -18px;" class="fa fa-times fa-2x deleteArh"></i>
<input type="text" style="margin-top:-20px; width:80%; margin-bottom:10px;" class="form-control upis-style crtezInput" placeholder="Razmera" value="1:100">
<input type="text" style="width:80%; margin-bottom:10px;" class="form-control upis-style crtezInput" placeholder="Tehnika" value="Tus">
</div>
</div>
答案 0 :(得分:2)
您正在获得undefined
,因为您正在<{strong>> input
元素中寻找input
元素:
var collectionA = $('.crtezInput');
var datas = [];
$.each(collectionA, function(idx, obj) {
datas.push({'input': $(obj).find('input').val()});
// Here -------------^^^^^^^^^^^^^^^^^^^^^^^^^^
});
由于您没有(实际上可以&#39; )其他input
元素中的input
元素,{ {1}}找不到任何内容,find
会返回val
。 (这是唯一情况undefined
返回val
,顺便说一句:当你调用它的集合中没有元素时。否则它总是返回一个字符串,可能是空白的。)
这是最小的变化:
undefined
...但我可能会更直接一点:
var collectionA = $('.crtezInput');
var datas = [];
$.each(collectionA, function(idx, obj) {
datas.push({'input': $(obj).val()});
});