2015-05-14 321 views
1

要創建付款訂單表格,我如何檢查使用卡片正則表達式輸入的信用卡號碼,然後選擇輸入的卡號的正確單選按鈕?JavaScript選擇單選按鈕

這是我到目前爲止有:

function selectCardType(){ 
    var cardNumValue = document.getElementById("ccNum").value; 
    var visa = /^4[0-9]{12}(?:[0-9]{3})?$/; 
    var mc = /^5[1-5][0-9]{14}$/; 
    var discover = /^(?:011|5[0-9]{2})[0-9]{12}$/; 
    var amex = /^3[47][0-9]{13}$/; 

    if(visa.test(cardNumValue)) 
    { 
     document.getElementById("visa").checked = true; 
    } 
    else if(mc.test(cardNumValue)) 
    { 
     document.getElementById("mc").checked = true; 
    } 
    else if(discover.test(cardNumValue)) 
    { 
     document.getElementById("discover").checked = true; 
    } 
    else if(amex.test(cardNumValue)) 
    { 
     document.getElementById("amex").checked = true; 
    } 
} 
+1

你有你嘗試過什麼樣的例子嗎? – Avitus

+0

當輸入信用卡號碼,然後按Tab鍵時,應選擇適當的卡片單選按鈕。 – empty

回答

0

你的代碼,它工作,看看:

http://codepen.io/anon/pen/mJPjap

<input type="number" id="ccNum" onchange="selectCardType()" /> 
+0

哦,你是對的我沒有把這個onchange添加到我的HTML文件中,非常感謝你。 – empty

+0

@ user3449225單選按鈕需要分組在一起,否則之前選擇的單選按鈕在更改卡號時不會被取消選擇。嘗試5474545334533213,然後將其更改爲4474545334533213.您將看到mc和簽證被選中。我只是分叉你的答案來解決這個問題! – prem89

0

正則表達式簽證

^4[0-9]{12}(?:[0-9]{3})?$^5[1-5][0-9]{14}$ 

正則表達式美國運通

​​

正則表達式查找

^65[4-9][0-9]{13}|64[4-9][0-9]{13}|6011[0-9]{12}|(622(?:12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|9[01][0-9]|92[0-5])[0-9]{10})$ 

正則表達式萬事達

^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14})$ 
0

按鈕需要在電臺組合在一起。如果不是,它允許選擇多個單選按鈕。這個例子是下面 http://codepen.io/anon/pen/jPqpdJ

<input type="radio" name="card" id="mc" /> mc