使用 JS vanilla 为输入提供特定格式

发布于 2025-01-13 08:33:25 字数 1865 浏览 3 评论 0原文

我正在使用 JS vanilla 创建一张信用卡,我希望用户输入卡号后,唯一可见的数字是最后 4 位数字。

**** **** **** 2345

所以我想我可以给不可见的号码ccHiddenNumbers一个ID,给可见的号码ccNumber另一个ID,将它们写在我想要打印输入的 HTML 部分中。正如你可以想象的那样,我收到了一个错误,因为当然,因为我在打印位置调用 Ids,所以没有收到数据。 <代码> **** **** **** 0000 然后我将此 id 移至输入字段,最终我感到困惑,因为输入应该只是同时包含 ccNumbers 和 ccHiddenNumbers 的内容。 当然,即使我已经将 id 更改为输入字段,我仍然会遇到相同的错误。

有人对我应该如何解决这种情况有建议吗?

 

var cardNumbers= document.getElementById('cardNumbers')

    var ccNumber= document.getElementById('ccNumber').value;
    document.getElementById('ccHiddenNumber').ccNumber;
    console.log('this is the cc TOTAL NUMBER: '+ccNumber);
    var ccVisibleNumber = ccNumber.substring(ccNumber.length-4);
    console.log('this is the CC number: '+ ccVisibleNumber);
    document.getElementById('ccNumber').value = '**** **** **** '+ ccVisibleNumber;

cardNumbers.addEventListener('input', function () {
        if (cardNumbers.value.length === 0) {
            document.getElementById('cardNumbers').innerHTML = '**** **** **** 2345';
        } else {
            document.getElementById('cardNumbers').innerHTML = cardNumbers.value;
        }
    });
<!--input field-->
<div class="field-container">
        <label for="ccNumber">Card Number</label>
        <input id="ccNumber" type="text" pattern="[0-9]*" inputmode="numeric" placeholder="0000 0000 0000">
        <input id="ccHiddenNumber" type="text" pattern="[0-9]*" inputmode="numeric" placeholder="0000">
</div>

<!--printed info-->
 <span id=cardNumbers> **** **** **** 0000 </span>
                

I'm working on creating a credit card with JS vanilla, I'm want that once the user type the numbers of the card, the only visible numbers are the last 4 digits.

**** **** **** 2345

So I thought I could give an ID to the not visible numbers ccHiddenNumbers and another id to the visible one ccNumber and wrote them in the HTML section where I want to print the input. As you can imagine I got an error, because of course since I was calling Ids in the printing place, not data was being received.
<span id=ccHiddenNumber>**** **** **** </span> <span id=ccNumber>0000</span>
Then I moved this ids to the input fields and I ended up getting confuse because the input should be just one that contains ccNumbers and ccHiddenNumbers together.
And of course I keep getting the same error, even tho I already changed the ids to the input field.

Does anyone have a suggestion on how should I tackled this situation?

 

var cardNumbers= document.getElementById('cardNumbers')

    var ccNumber= document.getElementById('ccNumber').value;
    document.getElementById('ccHiddenNumber').ccNumber;
    console.log('this is the cc TOTAL NUMBER: '+ccNumber);
    var ccVisibleNumber = ccNumber.substring(ccNumber.length-4);
    console.log('this is the CC number: '+ ccVisibleNumber);
    document.getElementById('ccNumber').value = '**** **** **** '+ ccVisibleNumber;

cardNumbers.addEventListener('input', function () {
        if (cardNumbers.value.length === 0) {
            document.getElementById('cardNumbers').innerHTML = '**** **** **** 2345';
        } else {
            document.getElementById('cardNumbers').innerHTML = cardNumbers.value;
        }
    });
<!--input field-->
<div class="field-container">
        <label for="ccNumber">Card Number</label>
        <input id="ccNumber" type="text" pattern="[0-9]*" inputmode="numeric" placeholder="0000 0000 0000">
        <input id="ccHiddenNumber" type="text" pattern="[0-9]*" inputmode="numeric" placeholder="0000">
</div>

<!--printed info-->
 <span id=cardNumbers> **** **** **** 0000 </span>
                

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文