Javascript 使用jquery在同一页面中的两个用户控件不起作用
我在Mizan.aspx中有两个相同的用户控件。我想使用自动完成 当我在 第一个用户控件文本框,它工作正常,一切正常 另一方面,当我在第二个用户控件文本框中写入时,它不工作也不工作 运行所使用的GetHesapKodu函数Javascript 使用jquery在同一页面中的两个用户控件不起作用,javascript,jquery,asp.net,user-controls,Javascript,Jquery,Asp.net,User Controls,我在Mizan.aspx中有两个相同的用户控件。我想使用自动完成 当我在 第一个用户控件文本框,它工作正常,一切正常 另一方面,当我在第二个用户控件文本框中写入时,它不工作也不工作 运行所使用的GetHesapKodu函数 $(document).ready(function () { SearchText(); //$('txtHesapKodu').keyup(function () { // SearchText
$(document).ready(function () {
SearchText();
//$('txtHesapKodu').keyup(function () {
// SearchText();
//});
});
function SearchText() {
$("#txtHesapKodu").autocomplete({
source: function (request, response) {
//alert("user controldeyizx");
// alert(document.getElementById('txtHesapKodu').value.uniqueID);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "../../jqueryTEST.asmx/GetHesapKodu",
//url: "belHesapPlani.ascx/GetHesapKodu",
data: "{'hesapKodu':'" + document.getElementById('txtHesapKodu').value + "'}",
dataType: "json",
success: function (data) {
response(data.d);
},
error: function (result) {
alert("No Match");
}
});
}
});
}
Mizan.aspx
[System.Web.Script.Services.ScriptMethod]
[WebMethod(EnableSession=true)]
公共列表GetHesapKodu(字符串hesapKodu)
{
DataTable dt=新的MH_HESAP_PLANI().GetAllByHesapaneidKurum(1,“HESAP_KODU”,hesapKodu,null);
List strList=新列表();
foreach(数据行中的数据行项)
{
添加(item[“NAME”].ToString());
}
返回strList;
}
您正在SearchText()
中筛选#txtHesapKodu
,但请记住,#
对ID和ID的筛选在整个网站上是唯一的。因此,在两个不同的用户控件中不能有具有相同ID的元素。改为使用name属性,并改为filter(name=[txtHesapKodu]
)。当我在第二个文本框中写入时,我会得到第一个usercontrol文本框值。当我在第二个文本框中写入时,我会得到第一个usercontrol文本框值。@ugurkabalak…因为您正在筛选一个ID,并且正如我一直说的那样,ID在整个站点中是唯一的,同一个ID不能有两次。添加名称属性而不是id属性以使其正常工作。如果你不知道怎么做,那就发布一些你的用户控件代码。函数SearchText(){$(“输入[name*='txtHesapKodu']”)。自动完成({源:函数(请求,响应){警报(document.getElementById(“”.value));警报(document.getElementById('txtHesapKodu').value);警报($(this.attr('txtHesapKodu').value);}});@ugurkabalak请将这些代码行添加到原始答案中,因为注释不是为发布大量代码而设计的。无论如何,请将呈现到浏览器中的自定义控件的代码发布。这必须类似于
<td>
<uc12:belHesapPlani runat="server" ID="belHesapPlani1" ClientIDMode="AutoID" Enabled="true" />
</td>
</tr>
<tr>
<td>
<uc12:belHesapPlani runat="server" ID="belHesapPlani2" ClientIDMode="AutoID" Enabled="true" />
</td>
[System.Web.Script.Services.ScriptMethod]
[WebMethod(EnableSession = true)]
public List<string> GetHesapKodu(string hesapKodu)
{
DataTable dt = new MH_HESAP_PLANI().GetAllByHesapNameIdKurum(1, "HESAP_KODU", hesapKodu, null);
List<string> strList = new List<string>();
foreach (DataRow item in dt.Rows)
{
strList.Add(item["NAME"].ToString());
}
return strList;
}