如何编辑动态表单字段以创建由两个字段

时间:2016-10-19 22:05:46

标签: javascript jquery

我需要发送一个表单,其中一个隐藏字段由两个其他字段组成,这两个字段将由用户动态填充(邮政编码和第一行地址),其中正则表达式后只有数字保持" 123 | 456"。

我试图使用下面的代码启动,我在控制台中监视输出。我已设法动态编辑文本字段,以便显示的所有内容都是数字,但这不适合用户。所以我试图将编辑过的文本字段数据存储到隐藏字段中,同时留下完整的地址,但我看不出如何做到这一点。

此外,有人可以解释为什么如果我删除注释行,变量不会被删除任何字母,虽然只是1?



      $(document).ready(function() {
        $("#testMe").on('propertychange change click keyup input  paste', function() //attaching multiple handlers
          {
            var removedText = $("#testMe").val().replace(/\D/, '');
            $("#testMe").val(removedText); //only removes once if removed
            console.log(removedText);

          }
        );
      })

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input type="hidden" id="hide" value="">
<input type="text" id="testMe" value="">
<span id="test2"></span>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

这个问题对我来说有点不清楚,但我尽力回答。

https://jsfiddle.net/ccu6j6xu/

<input type="hidden" id="hide" value="">
<input type="text" id="zip" value="">
<input type="text" id="address" value="">
<span id="test2"></span>

在HTML中,我所做的只是添加另一个输入,因为我认为这就是你想要做的事情?

$(document).ready(function() {
  $("#zip, #address").on('propertychange change click keyup input  paste', function() {
    var concatText = $("#zip").val().replace(/\D/g, '') + "|" + $("#address").val().replace(/\D/g, '');
    $("#test2").text(concatText);
    $("#hide").val(concatText);
  });
});

然后在JavaScript中,我更改了选择器以匹配新输入,然后我更改了函数。

此函数的第一行定义了一个变量concatText,用于保存每个输入的值与|之间的性格。每个都应用正则表达式删除最终值的字母。然后下一行更改要显示的范围的值,最后一行将此值应用于隐藏输入。

同样,这个问题让我感到困惑,但随意发表评论,我可以提供更多帮助:)

编辑:重读问题,我认为这是更好的答案