文本框更改事件无效

时间:2015-01-13 07:57:21

标签: c# jquery asp.net sql-server json

我有两个文本框,我试图在更改Textbox1事件时填充第二个文本框

例如: 当我在TextBox1输入客户代码时,我必须填写客户名称。

我的剧本:

 $(document).ready(function() {

        userCodeChangeEvent();

    });


function userCodeChangeEvent() {

    $('#<%=txtCustomerCode.ClientID %>').change(function() {

        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "Customer_Bill.aspx/GetNameByCode",
            data: "{'CusName':'" + document.getElementById('<%=txtCustomerCode.ClientID %>').value + "'}",
            dataType: "json",
            success: function(data) {

                $('#<%=txtcustomerName.ClientID %>').value = data.d; 

            },
            error: function(result) {
                alert("No Match");
            }
        });


    });
}

C#:

[WebMethod]
public static string GetNameByCode(string CusName)
{
   // List<string> empResult = new List<string>();
    string empResult = "";
    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Constring"].ConnectionString))
    {
        using (SqlCommand cmd = new SqlCommand())
        {
            cmd.CommandText = "select user_name From tbl_member_Registration where user_code=@SearchEmpName";
            cmd.Connection = con;
            con.Open();
            cmd.Parameters.AddWithValue("@SearchEmpName", CusName);
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                empResult=dr["user_name"].ToString();
            }
            con.Close();
            return empResult;
        }
    }
}

但它不起作用。我如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

n客户端2你应该注意的事情:

1- $(...).val(data.d);

2-使用&#34; keyup&#34;相反&#34; change&#34;因为在用户输入时不会触发更改。

n服务器端确保您已启用&#34; ScriptService&#34;通过将[System.Web.Script.Services.ScriptService]属性添加到Web服务类(asmx背后的代码),如下所示:

[System.Web.Script.Services.ScriptService]
public class WS : System.Web.Services.WebService
{

    [WebMethod]
    public static string GetNameByCode(string CusName)
    {
      ...
    }

}

答案 1 :(得分:0)

success函数中使用val()代替此val=

success: function(data) {

$('#<%=txtcustomerName.ClientID %>').val(data.d); 

}

如有必要,还可以更改此行

data: "{'CusName':'" + $('#<%=txtCustomerCode.ClientID %>').val() + "'}",