数据在确认框中显示的方式出现问题

时间:2015-03-03 13:52:35

标签: javascript jquery

我有一个包含多个文本框的表单,我可以在其中键入材料名称,在另一个框中我可以键入材料价格。

当用户点击提交时,我显示一个包含输入材料和价格的确认框。在此确认框中,我想显示所有输入的matr_name以及相关的matr_price(每行一个)。我似乎无法按需要显示它,下面的脚本输出如下:

matr_name
matr_price
matr_name
matr_price
等。

我希望它显示如下:
matr_name:matr_price
matr_name:matr_price
matr_name:matr_price

我得到的只是下面的脚本,它给了我正确的输出,只是没有在确认框中显示我想要的。

脚本

var matr_name = $("input[name*='matr']").map(function() {
return $(this).val()}).get().join('\n');
var confirm_form = confirm("Rep:\n" + matr_name);
console.log("Mart.: " + matr_name);
if(confirm_form == true)
  {
return true;
  } 
else {
return false;
      }
    }

表单的一部分:

    <tr>
            <td><input type="text" name="matr_name[]" id="matr_name" ></td>
            <td><input type="text" name="matr_price[]" id="matr_price"/></td>
        </tr>
        <tr>
            <td><input type="text" name="matr_name[]" id="matr_name" ></td>
            <td><input type="text" name="matr_price[]" id="matr_price"/></td>
        </tr>
        <tr>
            <td><input type="text" name="matr_name[]" id="matr_name" ></td>
            <td><input type="text" name="matr_price[]" id="matr_price"/></td>
        </tr>
        <tr>
            <td><input type="text" name="matr_name[]" id="matr_name" ></td>
            <td><input type="text" name="matr_price[]" id="matr_price"/></td>
        </tr>
<input type="submit" name="submit_name" id="submit_id" class="submit" value="Done" onclick="javascript:return show_confirm();"/>

1 个答案:

答案 0 :(得分:3)

您可以在值之后添加不同的字符串,具体取决于名称:

var matr_name = $("input[name*='matr']").map(function() {
  return $(this).val() + ($(this).attr('name') == 'matr_name[]' ? ': ' : '\n');
}).get().join('');

或:

var matr_name = $("input[name*='matr']").map(function() {
  if ($(this).attr('name') == 'matr_name[]') {
    return $(this).val() + ': ';
  } else {
    return $(this).val() + '\n';
  }
}).get().join('');