2016-10-19 46 views
0

我需要发送一个表单到其中一个隐藏域由两个其他域组成的域,这些域将由用户(邮政编码和第一行地址),在正则表达式之后只有数字保持“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>

回答

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来保存每个输入的值与|字符之间。每个人都应用正则表达式去除最终值的字母。然后下一行更改要显示的跨度值,最后一行将此值应用于隐藏的输入。


同样,问题是那种混乱给我,但随意评论,我可以帮助一些更:)

编辑:重读的问题,我觉得这个更好的答案

+0

混账,在几分钟内打败我。我正要发布我的答案,然后我发现你修改了你的与我的非常相似。啊,我不会让我的小提琴去浪费:https://jsfiddle.net/ek3s27u9/。 OP,你应该注意到正则表达式('g')中的全局修饰符,这会删除匹配字符的所有匹配项,而不是第一个匹配项。 –

+0

@ lucadem1313非常感谢,这确实有办法回答我的问题。剩下的唯一问题是填写表格的用户在将其输入到表单中时需要看到例如“1234路”的整个地址,而编辑和放入隐藏字段在幕后进行。非常感谢您回答并添加所有这些代码,非常感谢。对不起,我的问题很混乱,我已经花了2天时间来解决这个问题。 – user1777582

+0

我的编辑修复了它吗? @ user1777582 – lucadem1313

相关问题