0

ASP.NET MVC3アプリケーションを開発していて、その中でtelerikComboBoxを使用しています。フォーム送信メソッドをトリガーしているため、ComboBoxのEnterボタンクリックを無効にする必要があるという要件があります。以下は私が持っているコードです

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();

ドロップダウンのキープレスイベントを以下のようにjqueryのdocument.readyで処理しようとしましたが、それでも目的は解決しませんでした。Telerik ComboBoxのキープレスイベントはありますか?入力クリックでコードがそこに到達しない値をアラートしようとしましたが、表示されませんでした

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

このコンボボックスのEnterキーイベントを無効にする他の方法はありますか?

4

3 に答える 3

1

非表示の要素ではなく、入力要素にハンドラーを追加する必要があります。

すなわち

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

これがお役に立てば幸いです。

于 2012-04-12T16:28:42.513 に答える
0

「telerikコンボボックス停止フォーム送信」の最初のグーグル結果によると

onkeydownのイベントハンドラーをアタッチしてから、preventDefaultとstopPropagationの両方を使用してポストバックを防ぐ必要があるように聞こえます。

于 2012-04-10T14:56:27.080 に答える
0

使ってみませんか

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

フォーム全体でキーダウンをキャッチし、渡されたeventdetail引数(e)のeventSourceプロパティを使用して、入力フィールドをチェックし、falseを返します。

于 2012-04-12T08:36:58.517 に答える