【问题标题】:keyboard event should fire after filling text box填充文本框后应触发键盘事件
【发布时间】:2015-04-11 03:09:52
【问题描述】:

我正在使用 j 查询处理键盘事件。我有两个文本框,一个接受名字,第二个接受姓氏。填写文本框后,我想提醒第一个和最后一个名字。我正在使用(ascii 代码 65)键来触发事件。 这里的问题是当我填充文本框时事件正在触发。在文本框中输入名称时我不希望中断,我需要在输入文本框后调用事件。我正在使用 ajax 在 web 表单中连接 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;
  }
}

【问题讨论】:

    标签: javascript c# jquery ajax


    【解决方案1】:

    使用onchange 事件而不是onkeyup

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

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

    【讨论】:

      猜你喜欢
      • 2011-03-06
      • 2021-10-26
      • 2015-08-21
      • 2013-09-22
      • 1970-01-01
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多