使用jQuery,我需要根据输入值创建一个分隔的字符串

时间:2014-05-25 02:40:14

标签: javascript jquery arrays

如果我有以下内容:

<div id="mypanel">
  <input id="hiddeninput"></input>
  <div class="textbox">
    <input>
  </div>
  <div class="textbox">
    <input>
  </div>
  <div class="textbox">
    <input>
  </div>
</div>

关于任何这些文本框的模糊,我需要用每个文本框中的值填充隐藏文本框,用“|”分隔如果您有任何建议,或者更安全的角色。无论分隔符是什么,我都必须在用户输入文本时将其删除。

因此隐藏的文本框将填充:

一些文字|更多文字,......等等|以及更多

我用逗号作为数组做了类似的事情:

 dataArray.push($(this).val().split(',')[0]);

1 个答案:

答案 0 :(得分:4)

编辑:使用$ .map()

更简单
$(".textbox input").blur(function() {
    var array = $(".textbox input").map(function() {
        return this.value;
    }).get().join('|'); // replace '|' with any separator
    $("#hiddeninput").val(array);
}); 

<强> DEMO

<强>旧版:

var $hiddenInput = $("#hiddeninput");

$(".textbox input").blur(function() {
  var array = [];
  $(".textbox input").each(function() {
    if($(this).val()!="")  // ignore this if you don't want to check null
    {
      array.push($(this).val());
    }  
  });
  $hiddenInput.val(array.join("|"));
});

如果您不想检查空白,请删除if条件。

<强> DEMO