簡體   English   中英

當用戶在Jquery中按文本框輸入時,如何只調用一個按鈕單擊功能?

[英]How to call only one button click function when user press enter from Textbox in Jquery?

我已經制作了我的代碼。 但是當用戶輸入EnterKey ,它在服務器端調用2按鈕事件。 我只打電話給一個活動。

我有三個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定義了click函數,這里是代碼

$('#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個為什么? (只是想知道原因)。 目標:只想撥打一個按鈕

謝謝

但是我建議將你的按鈕和文本框放到更新面板中,然后在更新面板上設置默認按鈕。 如下:

<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>

暫無
暫無

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

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