This is a migrated thread and some comments may be shown as answers.

Disabling enter press for RadTextBox

6 Answers 1039 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
C
Top achievements
Rank 1
C asked on 07 Oct 2013, 12:26 PM
I have looked all over the forums and tried two different approaches, none of which work:

1) adding onkeydown = "handleClickEvent(this, event)" to the control in the .ascx and then this javascript:

function handleClickEvent(sender, args) {
    argsargs = args || window.event;
    if (args.keyCode == 13) {
        args.cancelBubble = true;
        args.returnValue = false;
        if (args.preventDefault) args.preventDefault();
        if (args.stopPropagation) args.stopPropagation();
    }
}

2) Adding this tag <ClientEvents OnKeyPress="disableEnterKey" /> in the RadTextBox tag, calling this script:

function disableEnterKey(sender, eventArgs) {
    var key = eventArgs.get_keyCode();
    if (key && key == 13)
        eventArgs.set_cancel(true);
}

6 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 07 Oct 2013, 01:06 PM
Hi,

Please try the sample code snippet to disable the enter key,make sure you have set AllowKeyboardNavigation="false".If this doesn't help,please provide your full code snippet.

ASPX:
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false">
    <MasterTableView>
        <Columns>         
            <telerik:GridTemplateColumn>
                <ItemTemplate>
                    <telerik:RadTextBox ID="RadTextBox" runat="server" ClientEvents-OnKeyPress="disableEnterKey">
                    </telerik:RadTextBox>
                </ItemTemplate>
            </telerik:GridTemplateColumn>
        </Columns>
    </MasterTableView>
    <ClientSettings AllowKeyboardNavigation="false">
    </ClientSettings>
</telerik:RadGrid>

JS:
<script type="text/javascript">
    function disableEnterKey(sender, args) {
        if (args.get_keyCode() == '13')
            args.set_cancel(true);
    }
</script>

Thanks,
Shinu
0
C
Top achievements
Rank 1
answered on 07 Oct 2013, 03:19 PM
So, in order to set AllowKeyboardNaviation I have to put the textbox within a grid, correct? Is there no way without using a RadGrid?
0
Shinu
Top achievements
Rank 2
answered on 08 Oct 2013, 04:39 AM
Hi,

If you want to disable Enter key for a RadTextBox,just cancel the event in OnKeyPress event.Please try the following code snippet.

ASPX:
<telerik:RadTextBox ID="TextBox1" runat="server" ClientEvents-OnKeyPress="disableEnterKey">
</telerik:RadTextBox>

JS:
<script type="text/javascript">
    function disableEnterKey(sender, args) {
        if (args.get_keyCode() == '13')
            args.set_cancel(true);
    }
</script>

Thanks,
Shinu
0
Vasssek
Top achievements
Rank 1
answered on 19 Jul 2018, 04:25 PM

Hello, I would like to ask how to disable enter key, but only when there is no valuechange. When I apply Shinu's suggestion, then onvaluechange client side event is never fired on enter key press.

 I hope you will understand my needs...

Best regards

Vasssek

 

0
Marin Bratanov
Telerik team
answered on 20 Jul 2018, 12:01 PM
Hi Vasssek,

Cancelling the keypress makes it as if the key was never pressed, so the textbox will never receive the Enter command, so it is expected that further events will not fire.

I am not sure I understand your scenario completely, but here's an example that checks whether the original value changed before cancelling enter:

<telerik:RadTextBox ID="TextBox1" runat="server" ClientEvents-OnLoad="storeOrigValue" ClientEvents-OnKeyPress="disableEnterKey">
</telerik:RadTextBox>
 
<script type="text/javascript">
    function storeOrigValue(sender, args) {
        sender.__origValue = sender.get_value();
    }
    function disableEnterKey(sender, args) {
        //note that get_value() is the value before the new key was pressed https://docs.telerik.com/devtools/aspnet-ajax/controls/textbox/client-side-programming/events/onkeypress
        //so this check will work if the initial value was not changed only, attemting to look for a change by a
        if (sender.get_textBoxValue() == sender.__origValue &&
            args.get_keyCode() == '13') {
            alert("preventing key press");
            args.set_cancel(true);
        }
    }
</script>


Regards,
Marin Bratanov
Progress Telerik
Try our brand new, jQuery-free Angular components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
0
Vasssek
Top achievements
Rank 1
answered on 20 Jul 2018, 01:52 PM

Hi Marin,

thank you for this explanation. I was thinking about something similar - compare values before and after change. Your suggestion will help me to achieve my request... And I'm sure it will help some others, too.

Have a nice day.

Tags
General Discussions
Asked by
C
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
C
Top achievements
Rank 1
Vasssek
Top achievements
Rank 1
Marin Bratanov
Telerik team
Share this question
or