2016-09-17 36 views
-1

我試圖在文本字段中以密碼格式掩蓋信用卡號碼。以密碼格式掩蓋信用卡號碼的一些數字

**** **** **** 1234

有誰知道一個明確的,可靠的方式來找到這個?

+0

所以你想部分掩蓋卡號。對? – Sankar

+0

不,我想要MasterCard(16),Visa(13,16)和Discover(16) –

回答

2

嗯,你可以讓前三個輸入類型爲類型的密碼,最後一個是文本的:

function input_onchange(me) { 
 
    if (me.value.length < me.getAttribute('maxlength') - 1) { 
 
     return; 
 
    } 
 
    var i; 
 
    var elements = me.form.elements; 
 
    for (i = 0, numElements = elements.length; i < numElements; i++) { 
 
     if (elements[i] == me) { 
 
      break; 
 
     } 
 
    } 
 
    elements[i + 1].focus(); 
 
}
<form action="post.php" method="post" accept-charset="utf-8"> 
 
    <input type="password" value="" id="first" size="4" maxlength="4" 
 
     onkeypress="input_onchange(this)"/> 
 
    <input type="password" value="" id="second" size="4" maxlength="4" 
 
     onkeypress="input_onchange(this)"/> 
 
    <input type="password" value="" id="third" size="4" maxlength="4" 
 
     onkeypress="input_onchange(this)"/> 
 
    <input type="text" value="" id="fourth" size="4" maxlength="4"/> 
 
    <p><input type="submit" value="Send Credit Card"></p> 
 
</form>

+0

Nehal,我只想使用一個輸入,因爲我正在使用Angular Material驗證。 –

1

如果你想保留的所有號碼在一input,你可以做這樣的事情:

$("#ccNr").keydown(function(e){ 
 
    if(e.keyCode != 8){ 
 
    var length = $(this).val().replace(/ /g,"").length; 
 
    if(length < 12){ 
 
     var val = ""; 
 
     for(var i = 0; i < length + 1; i++){ 
 
     \t val+="*"; 
 
     \t if((i+1)%4 == 0){ 
 
      val+=" "; 
 
      } 
 
     } 
 
     $(this).val(val); 
 
    } 
 
    if(length < 12 || length >= 16){ 
 
     e.preventDefault();  
 
    } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="ccNr">

這絕對可以改善。我只是想說明這個想法。主要的是覆蓋​​事件的默認行爲。 e.keyCode != 8檢查確保按下的鍵不是退格鍵鍵。如果你打算使用這個,你應該也可以檢查一些其他的鍵。另外,您可能需要忽略非數字值。