如何使用jQuery动态获取输入值?

时间:2018-12-14 03:11:34

标签: javascript jquery html

我正在尝试以编程风格实现DRY原则。

为避免对上述问题产生误解,我将在下面再解释一次。我一直在寻找这种解决方案,但似乎找不到正确的解决方案。

我想动态获取表单中的每个输入值(而不是动态输入,动态添加新输入等),而不必一遍又一遍地输入:

var foo = $('input[name="foo"]').val();
var bar = $('input[name="bar"]').val();

一两件就可以了。但是问题是,当我有10个以上的输入时,这将是不可接受的。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

您可以使用input函数在具有名称属性的each上循环并获取该值。

var arr = [];
$(":input[name]").each(function(index, element) {
  arr.push($(this).val());
});
console.log(arr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type='text' name='foo' value='1' />
<input type='text' name='bar' value='2' />
<input type='text' name='foo' value='3' />
<input type='text' name='bar' value='4' />
<input type='text' name='foo' value='5' />
<input type='text' name='bar' value='6' />
<input type='text' value='7' />

答案 1 :(得分:0)

sonar.javascript.lcov.reportPaths=XXX/coverage/lcov.info

答案 2 :(得分:0)

这应该可以大致完成您想要的。假设您只需要文本值。

    var Inputs = [];

    $(":input:text").each(function () {
        Inputs.push({
            Name: $(this).attr("name"),
            Value: $(this).val()
        });
    });