【问题标题】:How to format credit card input fields and expiry date [closed]如何格式化信用卡输入字段和到期日期[关闭]
【发布时间】:2013-06-05 17:03:21
【问题描述】:

有没有办法用 html/css 来编码?

我想将其格式化为到期框中“/”两侧的两位数。 我刚刚在我的网页上的表单中放置了“/”以显示我正在尝试做的事情。

Credit Card Number:
<input class="inputCard" type="text" name="creditCard1" id="creditCard1"/>
-
<input class="inputCard" type="text" name="creditCard2" id="creditCard2"/>
-
<input class="inputCard" type="text" name="creditCard3" id="creditCard3"/>
-
<input class="inputCard" type="text" name="creditCard4" id="creditCard4"/>
<br />
Card Expiry:
<input class="inputCard" type="text" name="expiry" id="expiry"/>

我想对其进行格式化,使其在每个信用卡文本框中只接受四个数字。

我不需要代码来使用 javascript 验证我的数据(我知道该怎么做)。我正在为 html 设计而苦苦挣扎。

【问题讨论】:

  • 你可以使用maxlength="4",但不会跳到下一个框,他们可以输入字母+数字。如果你想要那个功能,你需要Javascript。 #2 也需要 Javascript。
  • @TimWithers 你指的是 html 中的 maxlength 吗?请多多包涵。
  • 对于到期日期,您可以使用下拉菜单而不是输入。
  • @Yvette 过期日期变化太多?不是真的 - 只有 12 个月,您不需要输入超过几年的时间。2 个单独的下拉列表(一个代表月,一个代表年)。

标签: html forms input


【解决方案1】:

我会说做这样的事情:

Card Expiration:
<select name='expireMM' id='expireMM'>
    <option value=''>Month</option>
    <option value='01'>January</option>
    <option value='02'>February</option>
    <option value='03'>March</option>
    <option value='04'>April</option>
    <option value='05'>May</option>
    <option value='06'>June</option>
    <option value='07'>July</option>
    <option value='08'>August</option>
    <option value='09'>September</option>
    <option value='10'>October</option>
    <option value='11'>November</option>
    <option value='12'>December</option>
</select> 
<select name='expireYY' id='expireYY'>
    <option value=''>Year</option>
    <option value='20'>2020</option>
    <option value='21'>2021</option>
    <option value='22'>2022</option>
    <option value='23'>2023</option>
    <option value='24'>2024</option>
</select> 
<input class="inputCard" type="hidden" name="expiry" id="expiry" maxlength="4"/>

然后只需添加一段 Javascript 或 jQuery 来组合 expireMMexpireYY 的值,并将其设置为 expiry 的值。我更喜欢在 PHP 中做所有的服务器端,但这取决于你的确切设置。无论哪种方式,这是处理到期日期的常用方法。

【讨论】:

    【解决方案2】:

    以下代码对您有用,但这不是一个好习惯,因为不同设备中的每个浏览器都没有完全支持 html5。 (最好使用 http://digitalbush.com/projects/masked-input-plugin/ 之类的插件)

    Credit Card Number:
          <input class="inputCard" type="tel" pattern="[0-9]*" maxlength="4" name="creditCard1" id="creditCard1" required/>
          -
          <input class="inputCard" type="tel" pattern="[0-9]*" maxlength="4" name="creditCard2" id="creditCard2" required/>
          -
          <input class="inputCard" type="tel" pattern="[0-9]*" maxlength="4" name="creditCard3" id="creditCard3" required/>
          -
          <input class="inputCard" type="tel" pattern="[0-9]*" maxlength="4" name="creditCard4" id="creditCard4" required/>
          <br />
          Card Expiry:
          <input class="inputCard" name="expiry" id="expiry" type="month" required/>
    

    https://jsfiddle.net/mastermindw/sa4dcLu7/

    旧解决方案(包含错误,不允许前导零。感谢@kristopolous) http://jsfiddle.net/mastermindw/dUtJV/

    【讨论】:

    猜你喜欢
    • 2017-08-21
    • 2015-09-13
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    相关资源
    最近更新 更多