как скрыть вывод из формы

Я пытаюсь замаскировать вывод, который был отправлен из формы, которую я сделал, но, похоже, не работает.

поле ввода со страницы 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 цифры.


person telexper    schedule 21.09.2012    source источник


Ответы (2)


Попробуй это:

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 http://jsfiddle.net/fdRTR/2/

Обновлен jsfiddle с выводом меток http://jsfiddle.net/fdRTR/3/

Третье обновление, добавлена ​​кнопка вместо onkeyupevent http://jsfiddle.net/fdRTR/ 4/

Пожалуйста, проверьте примеры и напишите, если вам нужна дополнительная помощь.

person Albin N    schedule 21.09.2012

Попробуй это:

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(): Повторить символ N раз

person Gung Foo    schedule 21.09.2012