New to Kendo UI for jQuery? Download free 30-day trial

Show a Custom MaskedTextBox Placeholder on Blur

Environment

Product Progress® Kendo UI® MaskedTextBox for jQuery
Operating System Windows 10 64bit
Visual Studio Version Visual Studio 2017
Preferred Language JavaScript

Description

How can I use MVVM to show a custom placeholder on blur in the Kendo UI for jQuery MaskedTextBox?

Solution

The following example demonstrates how to show custom text as a placeholder on blur when the MaskedTextBox has no value.

<div id="example">
    <div class="demo-section k-header">
        <h4>Mask Input </h4>
        <ul id="fieldlist">
            <li>
                <label for="phone_number">Phone number:</label>
                <input id="phone_number" value="555 123 4567" />
            </li>
            <li>
                <label for="credit_card">Credit Card number:</label>
                <input id="credit_card" value="1234 1234 1234 1234" />
            </li>
            <li>
                <label for="ssn">Social security number:</label>
                <input id="ssn" value="003-12-3456" />
            </li>
            <li>
                <label for="postcode">UK postcode:</label>
                <input id="postcode" value="W1N 1AC"/>
            </li>
        </ul>
    </div>

    <script>
        $(document).ready(function() {
            $("#phone_number").kendoMaskedTextBox({
                mask: "(999) 000-0000"
            });

            $("#credit_card").kendoMaskedTextBox({
                mask: "0000 0000 0000 0000"
            });

            $("#ssn").kendoMaskedTextBox({
                mask: "000-00-0000"
            });

            $("#postcode").kendoMaskedTextBox({
                mask: "L0L 0LL"
            });

            var placeholder = "Enter value";

            $("[data-role=maskedtextbox]").on("blur", function() {
              if (!this.value) {
                this.value = placeholder;
              }
            }).on("focus", function() {
              if (this.value == placeholder) {
                    $(this).data("kendoMaskedTextBox").value("");
                $(this).focus();
              }
            });
        });
    </script>

    <style>
        .demo-section {
            width: 400px;
        }

        #fieldlist
        {
            margin:0;
            padding:0;
        }

        #fieldlist li
        {
            list-style:none;
            padding:10px 0;
        }

        #fieldlist label {
            display: inline-block;
            width: 150px;
            margin-right: 5px;
            text-align: right;
        }
    </style>
</div>

See Also

In this article