键盘事件应在填充文本框后触发

时间:2015-04-11 03:09:53

标签: javascript c# jquery ajax

我正在使用j查询处理键盘事件。我有两个文本框,一个接受名字,另一个接受姓氏。我想在填写文本框后先提醒和姓氏。我使用(ascii代码65)键来触发事件。 这里的问题是当我填充文本框时事件正在触发。在文本框中输入名称时我不想中断,我需要在输入文本框后调用该事件。我正在使用ajax连接网络表单中的c#。

请帮助我。

这是我的HTML代码:

<div>
    <table cellpadding="3" cellspacing="0" style="width: 25%;">
        <tr>
            <td>
                First Name:
            </td>
            <td>
                <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                Last Name:
            </td>
            <td>
                <asp:TextBox ID="txtLastName" runat="server" onkeyup="JqueryAjaxCall();" AutoPostBack="true"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>

            </td>
        </tr>
    </table>
</div>

这是我的剧本:

   <script src="Scripts/jquery1.11.0.min.js" type="text/javascript"></script>

<script type="text/javascript" language="javascript">

    function JqueryAjaxCall() {
        var pageUrl = '<%= ResolveUrl("~/Test.aspx/jqueryAjaxCall") %>';
        var firstName = $("#<%= txtFirstName.ClientID %>").val();
        var lastName = $("#<%= txtLastName.ClientID %>").val();
        var parameter = { "firstName": firstName, "lastName": lastName }

        $.ajax({
            type: 'POST',
            url: pageUrl,
            data: JSON.stringify(parameter),
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (data) {
                $(document).keyup(function (event) {
                    if (event.which == 65)
                        alert(data.d);
                });
            },
            error: function (data, success, error) {
                alert("Error : " + error);
            }
        });

        return false;
    }


</script>

这是我的C#代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;

public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
  {

  }
[WebMethod]
public static string jqueryAjaxCall(string firstName, string lastName)
  {
    //Do coding staff.
    return firstName + " " + lastName;
  }
}

1 个答案:

答案 0 :(得分:0)

使用onkeyup事件代替onchange

onchange事件只会在文本框模糊时触发。

<asp:TextBox ID="txtLastName" runat="server" onchange="JqueryAjaxCall();" AutoPostBack="true"></asp:TextBox>