单击提交按钮时,我尝试使用类'netSuiteValue'选择每个输入值。以下是我到目前为止的情况:
$('.netSuiteValue').each(function() {
var inputValue = $(this).val();
$('.submitBtn').click(function() {
$('.theValue').val('all values' + inputValue);
});
});
我无法弄清楚它为什么不起作用。
答案 0 :(得分:1)
您正在覆盖循环中的值,而不是构建字符串。
$('.netSuiteValue').each(function() {
var inputValue = $(this).val(); <--- declare var outside of loop and add to string instead
$('.submitBtn').click(function() {
$('.theValue').val('all values' + inputValue);
});
});
答案 1 :(得分:1)
你的方式错了。首先绑定提交按钮的click事件,然后收集您的数据:
$('.submitBtn').click(function() {
var inputValue;
$('.netSuiteValue').each(function() {
inputValue += $(this).val();
});
$('.theValue').val('all values' + inputValue);
});
答案 2 :(得分:1)
一些事情:
<form>
标记所以这是我给出上述解决方案的解决方案:
$('#fieldForm').submit(function(ev) {
ev.preventDefault();
var allVals = {};
$(this).find('input.netSuiteValue').each(function(i, el){
allVals[this.name] = this.value;
});
$('.theValue').val('All values: ' + JSON.stringify(allVals));
});
答案 3 :(得分:0)
这将为您提供所有这些输入的名称/值对,通过html提交表单会给出。
var values = $('input.netSuiteValue').serialize();
答案 4 :(得分:0)
我认为这就是你要找的东西:
$('.submitBtn').on('click',function(){
$('.netSuiteValue').each(function(){
alert($(this).val());
});
});
这是jsfiddle:http://jsfiddle.net/remibreton/2A6mW/
答案 5 :(得分:0)
因为你有提交函数之外的循环。它需要在提交函数内。
答案 6 :(得分:0)
$('.submitBtn').click(function() {
var fields = $('.netSuiteValue');
var values = fields.serialize();
$('.theValue').val('all values' + values);
});
答案 7 :(得分:0)
正如我所理解的,使用原始代码的问题是,您正在遍历元素,并且在每次迭代时,使用较新的值覆盖变量。并在该循环中分配click事件处理程序(这是相当昂贵的,因为在每次迭代时,您(重新)创建一个事件处理程序/函数。
我假设您想要迭代并检索输入元素的值以响应单击按钮。所以,试着改为:
// in response to clicking the submit button
$('.submitBtn').click(
function(){
// creates variable as an array
var inputValues = [];
// iterates through each element returned by the selector
$('.netSuiteValue').each(
function(){
// adds the value of each of those elements to the array
inputValues.push($(this).val());
});
// assigns the value of the .theValue element, and joins the array elements together with commas
$('.theValue').val('All values: ' + inputValues.join(', '));
});
参考文献:
答案 8 :(得分:0)
我的目标是在另一个输入中显示所有输入的值然后可能有效:
$('.submitBtn').click(function() {
var values = $('.netSuiteValue').map(function(i, e) {
return $(e).val();
}).get().join(', ');
$('.theValue').val('all values: ' + values);
});
请参阅demo。