jquery屏蔽数字输入

时间:2018-01-01 21:38:22

标签: javascript jquery knockout.js

我正在使用一个函数来屏蔽输入到我的文本框中的数字,但是我希望在将它屏蔽到一个可以观察到的敲除之前分配该值。我不确定我的功能在哪里可以抓取并存储该值,因为当您在文本框中输入值并且标签输出时,值将被“*”替换为仅用于显示。所以我的文本框显示*** 111我的observable的值应为1111111。

    var viewModel = function () {
        $(".textboxsemimedium").on("keydown keyup",
            function (e) {
              
                $(this).prop("value",
                    function (i, o) {
                        if (o.length < 6) {
                      
                            return o.replace(/\d/g, "*");
                        }
                    });
            });
        self.theMemberNo = ko.observable();
    }
    ko.applyBindings(viewModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
            <input class="textboxsemimedium" data-bind="value:theMemberNo"  data-val="true" data-val-length="Member Number be of 9 characters!" data-val-length-max="9" data-val-length-min="9" data-val-required="Member Number is required!" id="MemberNumber" maxlength="10" name="MemberNumber" title="Member Number is Required!" type="text" value="">
<span data-bind="text:theMemberNo"></span>

2 个答案:

答案 0 :(得分:1)

您将theMemberNo绑定到输入值。因此,如果值从1变为*,则可观察值也会发生变化。

我不会将输入文本的值绑定到一个observable我只是绑定事件 keyup 然后,我会有一个observable来保留原始值。显然,每次有一个keyup事件时你都必须及时了解这个observable。

答案 1 :(得分:1)

尝试使用此https://css-tricks.com/better-password-inputs-iphone-style/ 然后你像$('#user-password-2').dPassword();那样实现它 它的工作原理类似于iphone密码。

相关问题