2017-04-03 34 views
3

我已經讓我的代碼。但是當用戶輸入EnterKey時,它在服務器端調用2按鈕事件。我只想打一個事件。如何在用戶按下從Jquery中的文本框輸入時只調用一個按鈕點擊功能?

我有三個Asp.net按鈕,

<asp:Button ID="btnSearch" class="btn btn-info" runat="server" Text="SEARCH" Width="100" OnClick="btnSearch_Click" /> 
<asp:Button ID="btnSaveFile" runat="server" Text="SaveFile" OnClick="btnSaveFile_Click"/> 
<asp:Button ID="btnLoadData" CssClass="btn btn-info" runat="server" Text="Ok" OnClick="btnLoadData_Click" /> 

這3個按鈕,將執行3米不同的東西。我有一個文本框,一旦用戶輸入數據,當他們按下輸入我想調用btnSaveFile點擊事件。

這是一個文本框

<asp:TextBox ID="txtFileName" CssClass="form-control" runat="server"></asp:TextBox> 

注意

我已經定義了點擊功能btnSaveFile這裏是代碼

$('#btnSaveFile').click(function() { 
    var fileNames = $('#txtFileName').val(); 
    var flag = 'returnTrue'; 
    $.ajax({ 
     url: 'ReportTotalSalesPivot.aspx/getFileExistOrNot', 
     method: 'post', 
     async: false, 
     contentType: 'application/json', 
     data: '{fileName:"' + fileNames + '",reportName:"TotalSales"}', 
     dataType: 'json', 
     success: function (data) { 
      if (data.d === 'dataExist') { 
       flag = 'returnFalse'; 
       $('#lblSaveErrorMsg').text('This filename already exist. Please change the name'); 
      } 
      else { 
       //alert('else'); 
       $(".FilterTable > tbody > tr").each(function() { 
        $("#hiddenTableRecord").val($("#hiddenTableRecord").val() + $(this).find(".FieldNameID").html() + "$$$" + $(this).find(".OperatorID").html() + "$$$"); 
       }); 
       $("#hiddenTableRecord").val(''); 
       return true; 
      } 
     }, 
     error: function (error) { 
      alert('Please Call Administrator'); 
     } 
    }); 
    //alert('faisal'+flag); 
    if (flag === 'returnFalse') { 
     return false; 
    } 

}); 

以下代碼用於調用上述函數。

$('#txtFileName').keydown(function (e) { 
    //enter key 
    var key = e.which; 
    if (key == 13) { 
     $('#btnSaveFile').click(); 
     return false; 
    } 
}) 

問題

的keydown功能工作正常。但同時當我按下輸入鍵時,它也會調用btnSearch服務器端代碼。它不應該叫btnSearch。它應該叫btnSaveFile在服務器端

懷疑

完全我有3個服務器端的按鈕,但它僅調用2,爲什麼? (只是想知道原因)。目標:要調用只有一個按鈕

感謝

+0

你可以使用像Chrome瀏覽器檢查任何DevTool檢查代碼。 –

+0

使用屬性UseSubmitBehaviour =「false」like'' – RonyLoud

+0

@RonyLoud UseSubmitBehavior =「假」'?所以當用戶按下回車鍵時,這個按鈕不會再執行了嗎? –

回答

1

但是我建議把你的按鈕和文本框爲更新面板和更新面板上然後設置默認按鈕。 像這樣:

<asp:Panel ID="Panel1" runat="server" DefaultButton="btnSearch">  
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <input runat="server" id="txtSearch" class="form-control" type="text" placeholder="Search the Store..." /> 
     <asp:Button ID="btnSearch" class="btn btn-info" runat="server" Text="SEARCH" Width="100" OnClick="btnSearch_Click" /> 
    </ContentTemplate></asp:UpdatePanel> 
</asp:Panel> 
+0

你會在評論中提出要求。 –

+1

沒有太多的名譽點來添加評論你的問題。 –

+0

但是我建議 把你的按鈕和文本框放入更新面板,然後在更新面板上設置默認按鈕。如下所示:

相關問題