0

更新しました

この質問に対して非常に有益な回答を迅速に得たので、問題を再考しました。2 つの小さな要件に分割する必要があると思うので、質問を更新しています。

私の ASP.NET MVC 4 アプリケーションでは、フォーカスが特定のテキスト ボックスにあるときにユーザーがキーボードの Enter キーを押したときに必要です。

シナリオ 1: 適切なサーバー側アクションを呼び出す必要があります。カーソルが別のテキスト ボックスにあるときにユーザーが Enter キーを押した場合は、別のアクションを呼び出す必要があります。

シナリオ 2: 現在のページのいずれかのフォームのいずれかのテキスト ボックスにフォーカスがあるときにユーザーがキーボードの Enter キーを押した場合、フォームはすべてのフォーム データ (HttpPost) と共にコントローラーのアクションにポストバックされる必要があります。その の action 属性で指定されているとおり<form>

これら 2 つのシナリオを達成するにはどうすればよいですか?

4

4 に答える 4

3
$('#idOfTextbox').keypress(function(e) {
    if(e.which == 13) {
        $.ajax({
        //.. Your values go here...
        });
    }
});

送信されたフォームを傍受したい場合は、ajaxForm プラグインを使用できます。このようにして、ページに複数のフォームを含めることができ、フォームが送信されると、フォームの action 属性で指定されたアクション メソッドへの AJAX 呼び出しが行われます。その後、ajax 呼び出しの「成功」コールバックで応答を処理できるようになります。

于 2012-12-11T18:02:48.860 に答える
1

あなたは以下のようにそれを行うことができます:

$('#idOfTextbox').keypress(function(e) {
    if(e.which == 13) {
       $.ajax({

       url: './savedata',//Your method name, that is to be called
       type: 'POST',
       contentType: 'application/json',//Type of data you want to post
       data: JSON.stringify({ obj: sampleobject }),//object of post-object i.e. data being posted
       success: function(result) {
       //Logic to handle success
        }  
       error: function(){}//Handle error here  
     }
}); 

現在作業しているビューの同じコントローラー上にあるメソッドを呼び出す例を示しました。

于 2012-12-11T18:23:05.717 に答える
1

<form>JavaScript を使用するか、単純にボタン type="submit" を使用して各入力を別々に配置できます。

于 2012-12-11T18:02:29.760 に答える
1
element.onkeydown = function(event) {
    //do something on keydown (enter is keyCode === 13)
};
于 2012-12-11T18:02:40.180 に答える