我有两个文本框,我试图在更改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;
}
}
}
但它不起作用。我如何解决这个问题?
答案 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() + "'}",