我试图从我的表单中获取所有值,然后使用我从表单中获取的值设置我的textarea的值。
继承人我的jquery
$('#formButton').on('click', function(e){
e.preventDefault();
$inputs = $("#myForm fieldset input");
$inputs.each(function() {
a = $(this).val();
$('#description').val(a);
console.log(a)
});
});
我只是抓住我的输入并在我控制台记录值时迭代它我从该输入中得到所有值的列表
然而,当我尝试将val设置为我的描述textarea时,我在那里看到的唯一值是最后一个。
所以,如果我输入一个b c
只有c
被放入我的textarea。我需要整件事。
这是一个与我小提琴的链接
答案 0 :(得分:3)
使用.map().get()
:
$('#formButton').on('click', function(e){
e.preventDefault();
var a = $("#myForm :input").map(function() {
return this.value;
}).get().join(''); // creates a comma separated string.
$('#description').val(a); // set the values here.
});
在您的代码中,您在每次迭代中更新了值,以便始终为您提供最后一个值。
答案 1 :(得分:1)
您编写的代码块在逻辑上有效。但是.each函数使得$('description')的循环总是新的。
$('#formButton').on('click', function(e){
e.preventDefault();
$inputs = $("#myForm fieldset input");
var allValues='';
$inputs.each(function() {
a = $(this).val();
allValues+=a;
console.log(a)
});
$('#description').val(allValues);
});
答案 2 :(得分:0)
您正在写信#description
,而不是附加。
$('#formButton').on('click', function(e){
e.preventDefault();
var data = [];
var $inputs = $("#myForm fieldset input");
$inputs.each(function() {
var a = $(this).val();
data.push(a);
console.log(a)
});
$('#description').val(data.join(' '));
});