New to Telerik UI for ASP.NET AJAX? Download free 30-day trial

Prevent from Typing Particular Characters

One of the limitations of the OnClientKeyPressing event is that it cannot be cancelled. This means that the user can type any letter in the input area of the RadComboBox (when AllowCustomText is set to True).

These examples will show you how to disallow the user to type any of the following letters in the input area of the combo: !@#$%^&*()][{}

Solution 1 leveraging the browser's addEventListener method to handle the keyDown event:

<telerik:RadComboBox
    ID="RadComboBox1"
    runat="server"
    AllowCustomText="true"
    OnClientLoad="OnClientLoad"
    >
</telerik:RadComboBox>
<script>
    function OnClientLoad(combo, args) {
        var input = combo.get_inputDomElement();
        input.addEventListener('keydown', onKeyDownHandler);
    }

    function onKeyDownHandler(e) {
        var code = e.keyCode || e.which;

        // Check for number keys with Shift (for symbols like !@#$%^&*())
        if (e.shiftKey && code >= 48 && code <= 57) {
            e.preventDefault();
        }
        // Check for [{}] keys
        if (code === 219 || code === 221) {
            e.preventDefault();
        }
    }
</script>

Solution 2 based on the OnClientKeyPressing client-event of RadCombobox:

<telerik:radcombobox 
    id="RadComboBox1" 
    runat="server" 
    onclientkeypressing="HandleKeyPress"
    AllowCustomText="true">
</telerik:radcombobox>

<script language="javascript" type="text/javascript">
    function HandleKeyPress(sender, eventArgs) {
        var domEvent = eventArgs.get_domEvent();
        var code = domEvent.keyCode || domEvent.which;

        // Check for number keys with Shift (for symbols like !@#$%^&*())
        if (domEvent.shiftKey && code >= 48 && code <= 57) {
            domEvent.preventDefault();
        }
        // Check for [{}] keys
        if (code === 219 || code === 221) {
            domEvent.preventDefault();
        }
    }
</script>

See Also

In this article