如何屏蔽表单的输出

时间:2012-09-21 21:19:51

标签: javascript forms input mask

我正在尝试屏蔽从我所制作的表单转发的输出,但似乎不起作用。

第1页的输入字段

<form method="post" action="step2.php" id="form1" name="form1">  
  Enter Card Here:<input name="card"   type="text"  id="card"
  value="<?php echo $_POST["card"]; ?>"  style="width:85px;"
  class="validate[custom[card]] text-input" /> </form>

这是我正在使用的代码

<script> var card = "<?php echo $_POST["card"]; ?>"; var str = "";
for(var i=1; i <= card.length-4; i++) {    str += "*"; }

ecard = str + card.substr(card.length-4);
$('.ccard').appendTo('ecard'); </script>

这是输出应该出现的地方

 <label class="ccard"></label>

在输入字段上,用户必须输入12位数字

ex: 123456789012

然后它应该显示为

********9012

前8个数字被屏蔽,只有最后4个数字可见。

2 个答案:

答案 0 :(得分:1)

试试这个:

var card = "123456789011";
var str = "";
for(var i=1; i <= card.length-4; i++) {
   str += "*";
}
ecard = str + card.substr(card.length-4);
console.log(ecard);

card变量是您的输入,在此示例中已设置。

工作jsfiddle-example http://jsfiddle.net/fdRTR/2/

更新了标签输出的jsfiddle http://jsfiddle.net/fdRTR/3/

第三次更新,添加了一个按钮,而不是onkeyupevent http://jsfiddle.net/fdRTR/4/

如果您需要更多帮助,请查看示例并回写。

答案 1 :(得分:0)

试试这个:

var card = "123456789012";
var maskLength = card.length-4;

ecard = card.replace(card.substr(0,maskLength),Array(maskLength).join('*'));

console.log(ecard);

如果你想了解它的作用:

replace(): https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace

substr(): https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substr

Array(n).join(): Repeat Character N Times