簡體   English   中英

在用戶按Enter / Return鍵時調用服務器端操作

[英]Invoke a server side action upon the user pressing the Enter/Return key

更新

自從我迅速得到您對這個問題的非常有幫助的答案以來,我已經重新考慮了這個問題。 我認為我需要將其分解為兩個小要求,因此我正在更新這個問題。

在我的ASP.NET MVC 4應用程序中,當焦點位於特定文本框中時,當用戶按下鍵盤上的Enter鍵時,我需要這樣做:

方案1:必須調用適當的服務器端操作。 如果用戶在光標位於其他文本框中時按Enter鍵,則必須調用另一個動作。

方案2:如果用戶在焦點位於當前頁面上任一表單的任何文本框中時按下鍵盤上的Enter鍵,則該表單必須與所有表單數據(HttpPost)一起回發到控制器上的操作如該<form>的action屬性中所指定。

如何完成這兩種情況?

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

如果要攔截提交的表單,可以使用ajaxForm插件 這樣,您可以在頁面上擁有多個表單,並且在提交表單后,它將對表單的action屬性中指定的action方法進行AJAX調用。 然后,您將能夠在ajax調用的“成功”回調中處理響應。

您可以使用javascript或簡單地將每個輸入放在不同的<form>並在其中鍵入type =“ submit”。

element.onkeydown = function(event) {
    //do something on keydown (enter is keyCode === 13)
};

您可以按照以下步驟進行操作:

$('#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  
     }
}); 

我舉了一個例子來調用一個方法,該方法位於您當前正在使用其視圖的同一控制器上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM