Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery动态获取输入值?_Javascript_Jquery_Html - Fatal编程技术网

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

Javascript 如何使用jQuery动态获取输入值?,javascript,jquery,html,Javascript,Jquery,Html,我正试图在我的编程风格中实现这一原则 为了避免对我上面的问题产生误解,我将在下面再次解释。我一直在寻找这个解决方案,但似乎找不到正确的解决方案 我希望动态获取表单中的每个输入值(不是动态输入,动态添加新输入等),而无需反复键入: var foo = $('input[name="foo"]').val(); var bar = $('input[name="bar"]').val(); 一两件就可以了。但问题是,当我有超过10个输入时,这将是不可接受的 我怎样才能做到这一点?var input

我正试图在我的编程风格中实现这一原则

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

我希望动态获取表单中的每个输入值(不是动态输入,动态添加新输入等),而无需反复键入:

var foo = $('input[name="foo"]').val();
var bar = $('input[name="bar"]').val();
一两件就可以了。但问题是,当我有超过10个输入时,这将是不可接受的

我怎样才能做到这一点?

var inputs={};
var inputs = {};
// This will fire no matter when the control has been added
$(document).on('keyup','input[name]'), function () {
    inputs[$(this).attr('name')] = $(this).val();
});

// The results will be in at inputs.<name of control>, so a control with
// name="name1" will be found at inputs.name1.
//
// Also all the controls that have a name will be in the object when changed.
// This will only contain changed values and if you want to
// prime it initially, you will need to do this once the controls are all
// loaded.

$('input[name]').each(function() {
   inputs[$(this).attr('name')] = $(this).val();
});
//无论何时添加控件,此操作都将触发 $(文档).on('keyup','input[name]')、函数(){ 输入[$(this.attr('name')]=$(this.val(); }); //结果将显示在at输入中,因此使用 //name=“name1”将在inputs.name1中找到。 // //此外,更改时,所有具有名称的控件都将位于对象中。 //这将只包含更改的值,如果您希望 //初始时,您需要在控件完成后执行此操作 //上膛了。 $('input[name]')。每个(函数(){ 输入[$(this.attr('name')]=$(this.val(); });
var输入={};
//无论何时添加控件,此操作都将触发
$(文档).on('keyup','input[name]')、函数(){
输入[$(this.attr('name')]=$(this.val();
});
//结果将显示在at输入中,因此使用
//name=“name1”将在inputs.name1中找到。
//
//此外,更改时,所有具有名称的控件都将位于对象中。
//这将只包含更改的值,如果您希望
//初始时,您需要在控件完成后执行此操作
//上膛了。
$('input[name]')。每个(函数(){
输入[$(this.attr('name')]=$(this.val();
});

您可以使用
每个
函数循环输入具有名称属性的
并获取该值

var arr=[];
$(“:输入[名称]”)。每个(函数(索引,元素){
arr.push($(this.val());
});
控制台日志(arr)

您可以使用
每个
函数循环输入具有名称属性的
并获取该值

var arr=[];
$(“:输入[名称]”)。每个(函数(索引,元素){
arr.push($(this.val());
});
控制台日志(arr)

我认为这大概可以实现您想要的。假设您只需要文本值

    var Inputs = [];

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

我认为这应该大致达到你想要的效果。假设您只需要文本值

    var Inputs = [];

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


你是说你想用一个你可以调用的函数来代替它吗?还是在所有的字段中循环?如果是前者,您可以按照
const getInputByName=(name)=>$(`input[name=${name}]`
)的思路来做一些事情,并通过执行
var$foo=getInputByName(“foo”)来调用它。如果你想要的结果对我来说更清楚一点,我会把它作为一个答案来提交。基本上,如果我真的创建了一个函数,这意味着我应该反复输入它的值。所以,我认为循环更好。。但我不知道怎么做。请您提交答案好吗?即使您将所有输入都放在一起,您如何在不使用标识符的情况下引用单个输入?还是硬编码?最后,如果您想要输入
foo
的值,那么最终必须指定
foo
。如果您只是尝试获取所有输入,或所有空输入,或所有填充输入,或所有文本输入,等等,那么这会更容易。但是你的问题没有意义。我们需要知道你打算对输入做什么。你是对的,我试图提交请求时遇到了问题。标识符没有设置。我忘了说我希望它作为ajax数据提交。你是说你想用一个可以调用的函数来代替它吗?还是在所有的字段中循环?如果是前者,您可以按照
const getInputByName=(name)=>$(`input[name=${name}]`
)的思路来做一些事情,并通过执行
var$foo=getInputByName(“foo”)来调用它。如果你想要的结果对我来说更清楚一点,我会把它作为一个答案来提交。基本上,如果我真的创建了一个函数,这意味着我应该反复输入它的值。所以,我认为循环更好。。但我不知道怎么做。请您提交答案好吗?即使您将所有输入都放在一起,您如何在不使用标识符的情况下引用单个输入?还是硬编码?最后,如果您想要输入
foo
的值,那么最终必须指定
foo
。如果您只是尝试获取所有输入,或所有空输入,或所有填充输入,或所有文本输入,等等,那么这会更容易。但是你的问题没有意义。我们需要知道你打算对输入做什么。你是对的,我试图提交请求时遇到了问题。标识符没有设置。我忘了说我想把它作为ajax数据提交。好家伙~!但是如果我有一个表单上有
textarea
radio
checkbox
元素,那该怎么办呢?我刚刚读了jQuery文档[link](),差点忘了它。非常感谢你!你的解决方案很好。但我面临着一个新问题,因为我想将它用作ajax数据,我只获取它的值,而不获取它的name属性/标识符。对不起(-question updated不,这不是怎么回事。如果你有新问题,问新问题。不要把以前的问题换成新问题。好吧,我明白。这是我的错,回滚~nice dude~!但是如果我有一个表单上面有
textarea
radio
checkbox
元素,那该怎么办呢?好吧,我刚刚读了jQuery d文档[link]()差点忘了它。非常感谢!您的解决方案很棒。但我面临新的问题,因为我想将它用作ajax数据,我只得到它的值,而没有它的名称属性/标识符。