我需要发送一个表单,其中一个隐藏字段由两个其他字段组成,这两个字段将由用户动态填充(邮政编码和第一行地址),其中正则表达式后只有数字保持" 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;
答案 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
,用于保存每个输入的值与|之间的性格。每个都应用正则表达式删除最终值的字母。然后下一行更改要显示的范围的值,最后一行将此值应用于隐藏输入。
同样,这个问题让我感到困惑,但随意发表评论,我可以提供更多帮助:)
编辑:重读问题,我认为这是更好的答案