使用jQuery从多个输入中获取值数组

有人可以让我知道如何从几个输入字段中获取值吗?

我有一个包含几个输入的列表,如下所示:

  • 我有一个Javascript解决方案(在表单提交):

     ... var extratitles = document.getElementsByName('additionaltitlename'); var str = ''; for (var i = 0; i < extratitles.length; i++) { str = str + '|' + extratitles.item(i).value; } } 

    我如何在JQuery中做同样的事情?

    有两个同名的输入是无效的。 如果要执行此操作,可以使用

    你可以试试这个:

      ​​​​​​​​​​​​​​​​​​​​​​​ 

    有了这个jQuery

     // click handler function onClick(event) { var titles = $('input[name^=titles]').map(function(idx, elem) { return $(elem).val(); }).get(); console.log(titles); event.preventDefault(); } // attach button click listener on dom ready $(function() { $('button').click(onClick); }); 

    看到它在jsFiddle上工作

    编辑

    这个答案为您提供数组中的标题,而不是使用|的字符串 分隔器。 就个人而言,我认为这更有用。

    如果您只是提交表单并且想要支持多个值,请使用.serialize方法,如其他答案中所述

    使用jQuery的本机serialize函数:

     var data = $('input[name="additionaltitlename"]').serialize(); 

    文档

    .serialize()方法以标准URL编码表示法创建文本字符串。 它在表示一组表单元素的jQuery对象上运行。

    手段:

     str = ''; $("input[type='text']").each(function() { str = str + '|' + $(this).val(); }); 

    要么

     str = ''; $("input[name='additionaltitlename']").each(function() { str = str + '|' + $(this).val(); }); 

    除了@ gdoron或者@ macek的回答之外,我想补充一点,你发布的代码的所有错误都是你有一个太多了。 这有效(虽然它仍有改进的余地):

     $('#getpreviewbutton').click(function(){ var extratitles = document.getElementsByName('additionaltitlename'); var str = ''; for (var i = 0; i < extratitles.length; i++) { str = str + '|' + extratitles.item(i).value; } });​ 

    请参阅: http : //jsfiddle.net/8XJcc/

    我不知道您使用的是哪种浏览器,但使用类似Firebug或Chrome开发工具的方法可以非常方便地发现像这样的简单错误。 请参阅 Chrome或此版本的Firefox参考。 即使IE有一个 - 只需按F12。