Javascript 单击按钮时如何在自动完成文本框中填充数据?
我有一个带有jquery自动完成功能的文本框。如果输入“/”然后输入一个字符,它将根据一个条件填充数据。但是我想在单击按钮时填充自动完成列表中的所有数据,而不管文本框中有什么数据 我的按钮:Javascript 单击按钮时如何在自动完成文本框中填充数据?,javascript,jquery,asp.net,vb.net,jquery-autocomplete,Javascript,Jquery,Asp.net,Vb.net,Jquery Autocomplete,我有一个带有jquery自动完成功能的文本框。如果输入“/”然后输入一个字符,它将根据一个条件填充数据。但是我想在单击按钮时填充自动完成列表中的所有数据,而不管文本框中有什么数据 我的按钮: <asp:Button ID="Button2" runat="server" Text="Button" /> 我的自动完成函数和填充数据的条件是: <script type="text/javascript"> function pageLoad(sender, arg
<asp:Button ID="Button2" runat="server" Text="Button" />
我的自动完成函数和填充数据的条件是:
<script type="text/javascript">
function pageLoad(sender, args) {
$(function () {
$("#<%=txtCu.ClientID %>").autocomplete({
source: function (request, response) {
if(request.term.indexOf("/") == (request.term.length-1) && enterFlag)
{
var term = request.term.slice(0,-1)
$.ajax({
url: '<%=ResolveUrl("~/Webservice.asmx/GetCus") %>',
data: "{ 'prefix': '" + term + "'}",
dataType: "json",
type: "POST",
async: false,
mustMatch: true,
contentType: "application/json; charset=utf-8",
success: function (data) {
response($.map(data.d, function (item) {
return {
label: item.split('^')[0],
val: item.split('^')[1]
}
}))
},
error: function (response) {
},
failure: function (response) {
}
});
};
},
select: function (e, i) {
$("#<%=hdnCr.ClientID %>").val(i.item.val);
if (i.item.val == "No Records Found") {
$("#<%=hdnCr.ClientID %>").val(-1);
document.getElementById('<%=txtCu.ClientID%>').value = "";
return false;
}
checkddlcustomerinfo();
},
minLength: 0
}).bind('focus', function () { $(this).autocomplete("search"); })
.data("autocomplete")._renderItem = function (ul, item) {
return $("<li></li>").data("item.autocomplete", item).append("<div><table><tr><td width='200px'>" + item.label + "</td>" + "<td width='110px'>" + item.val.split('~')[6] + "</td>" + "<td>" + item.val.split('~')[4] + "</td></tr></table></div>").appendTo(ul);
};
});
}请参见对自动完成代码的编辑:
$.ajax({
url: '<%=ResolveUrl("~/Webservice.asmx/GetCus") %>',
data: "{ 'prefix': '" + term + "'}",
dataType: "json",
type: "POST",
async: false,
mustMatch: true,
contentType: "application/json; charset=utf-8",
success: function (data) {
response($.map(data.d, function (item) {
return {
label: item.split('^')[0],
val: item.split('^')[1]
}
}))
$('.ui-autocomplete').hide(); // <-- this line
},
}) 这样做可以得到预期的结果 ASP按钮,添加类属性CssClass 注意:必须在自动完成中设置minLength:0
正在工作感谢您的回复。$”。用户界面自动完成',隐藏;这条线能做什么?我不想隐藏这首歌。我想要额外的按钮,这将填充自动完成,但以前的文本框功能填充自动完成将保持不变@Scott Selby单击按钮时,您希望发生什么事情?我希望自动完成与文本框一样。但是需要一个额外的按钮来触发自动完成事件。@Scott Selby。效果很好。非常感谢您的帮助。您在编码方面真的很专业@Amit Soni。但是我无法从自动完成中选择任何内容,正如您所知,我已经给出了检查“/”的条件,因此它不适用于该条件@Amit Soni。另外,单击外部后,自动完成功能不会消失。@sona:请检查编辑的答案:Thnaks。让我试试这段代码,我会告诉你的。@Amit Soni
<asp:Button ID="Button2" runat="server" Text="Button" Class="myBtn"/>
$(function(){
$(document).on('click', '.myBtn', function(e){
e.preventDefault();
//maybe a prevent propigation line too just for other browsers like IE
$('.ui-autocomplete').show();
});
});
<asp:Button ID="Button2" runat="server" Text="Button" CssClass="btn"/>
$(document).on("click","btn",function(e){
e.preventDefault();
$("#<%=txtCu.ClientID %>").autocomplete("search", "");
$("#<%=txtCu.ClientID %>").autocomplete("select",function (e, i) {
$("#<%=hdnCr.ClientID %>").val(i.item.val);
if (i.item.val == "No Records Found") {
$("#<%=hdnCr.ClientID %>").val(-1);
document.getElementById('<%=txtCu.ClientID%>').value = "";
return false;
}
checkddlcustomerinfo();
}
);
});
$(document).on('click', function(e){
var target = $(e.target);
if(target.attr("id") != "txtCu" && target.attr("class") != "btn")
{
$("#<%=txtCu.ClientID %>").autocomplete('close');
}
});