2012-04-10 23 views
0

Ich entwickle eine ASP.NET MVC3-Anwendung, und ich benutze Telerik ComboBox in es. Ich habe eine Anforderung, bei der ich die Enter-Schaltfläche deaktivieren muss, klicken Sie in der ComboBox, weil es die Formularsendenmethode trigerring ist. Unten ist der Code iTelerik ComboBox deaktivieren geben Sie klicken Sie auf oder deaktivieren Sie Formular beim Absenden eingereicht klicken

Html.Telerik().ComboBox().Name("OpportunityType").Value("-1") 
        .BindTo(new SelectList(Model.OpportunityTypes, "OpportunityID", "OpportunityTypeName")) 
        .ClientEvents(events => events.OnChange("OnOpportunityTypeChange") 
        ) 
        .HtmlAttributes(new { style = "width: 180px;" }).Render(); 

habe ich versucht, mit wie unten in document.ready von Jquery, das Tastendruckereignis des Drop-Down zu handhaben, sondern auch, dass der Zweck nicht gelöst haben. Haben wir ein Tastendruckereignis für Telerik ComboBox? mein Code erreicht es nie geben klicken Ich habe versucht, einen Wert zu alarmieren, und es zeigte sich nicht

$("#OpportunityType").keypress(function (e) { 
     if (e.which == 13 || e.keyCode == 13) { 
     return false; 
     } 
    }); 

andere Art und Weise bis zu deaktivieren das Schlüsselereignis für diese Combobox eingeben?

+0

Ist das Kombinationsfeld das einzige Element Ihres Formulars? – Rob

+0

@Rob Nein. Ich habe auch einige Textfelder und Kontrollkästchen. – TRR

+0

Haben Sie sich mit der Funktion preventDefault des Ereignisses angesehen? Http: //api.jquery.com/event.preventDefault/ – Rob

Antwort

1

Sie sollten den Handler dem Eingabeelement hinzufügen - nicht dem verborgenen.

d. H.

$("#OpportunityType-input").keypress(function (e) { 
     if (e.which == 13 || e.keyCode == 13) { 
     return false; 
     } 
    }); 

Ich hoffe, das hilft!

+0

Ich habe das zuerst versucht, aber auch dieses didn 't Arbeit – TRR

+0

Nun, das Ereignis wird auf myside ausgelöst (ich legte einen Haltepunkt dort), wenn ich drücke Enter ... und ich verhindere das Formular von submit. Sie können das gleiche hier versuchen: http: //demos.telerik .com/aspnet-mvc/combobox/clientvalidation mit diesem sele ctor $ ("# ProductID-input") –

+0

Danke für diesen XMR. Mein Dropdown ist ähnlich dem hier: http://demos.telerik.com/aspnet-mvc/combobox/clientsideevents. Versuchen Sie einfach im ersten Drop-down-Menü auf Enter zu klicken. Ich sehe kein Ereignis (Tastendruck) im Ereignisprotokoll. wenig verwirrt. – TRR

0

Nach dem ersten Google-Ergebnis für "telerik combobox stop form submission"

seine klingt wie Sie einen Ereignishandler für onkeydown anbringen müssen und dann sowohl prevent und stopPropagation verwenden, um die Postbacks zu verhindern.

+0

Wie bereits erwähnt, ist dies eine HTML.Telerik.ComboBox und nicht ein Rad-Steuerelement, so dass der obige Link keine Antwort auf meine Frage liefert. – TRR

0

Wie über die

<form [...] onkeypress="return validate(event)"> 

mit dem keydown über die Form zu fangen und dann in Eventdetail Argumente (e) die Eigenschaft event des übergebenen verwendet für das Eingabefeld zu überprüfen und false zurück.

+0

Das Telerik-Kombinationsfeld erkennt das Keypress- oder Keydown-Client-Ereignis nicht – TRR

Verwandte Themen