我有一个带有自动完成功能的文本框和一个按钮。我想只在从自动完成列表中选择一个值时启用该按钮。 怎么做?
这是我的自动完成功能:
<script type="text/javascript">
$(document).ready(function () {
$("#<%=xyz.ClientID %>").autocomplete({
source: function (request, response) {
$.ajax({
url: '<%=ResolveUrl("~/WebService.asmx/Get") %>',
data: "{ 'prefix': '" + request.term + "'}",
dataType: "json",
type: "POST",
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) {
alert(response.responseText);
},
failure: function (response) {
alert(response.responseText);
}
});
},
select: function (e, i) {
$("#<%=abc.ClientID %>").val(i.item.val);
},
minLength: 0
}).bind('focus', function () { $(this).autocomplete("search"); });
});
</script>
答案 0 :(得分:3)
在您的选择功能中添加:
select: function (e, i) {
$("#<%=abc.ClientID %>").val(i.item.val);
$("#buttonid").prop("disabled", true); // true disabled, false enabled
},
修改强> $(“#buttonid”)。prop(“disabled”,false); //启用此按钮
答案 1 :(得分:1)
对于普通按钮,您需要在文档加载时将按钮设置为禁用,例如
$(document).ready(function () {
$('#btn')[0].disabled = true;
...
然后使用select
函数启用它,例如
select: function (e, i) {
$("#<%=abc.ClientID %>").val(i.item.val);
$('#btn').disabled = false; // <-- enables button
},
答案 2 :(得分:1)
试一下:执行select时会调用以下内容(使用键盘选择,不知道鼠标选择)
$( "#<%=xyz.ClientID %>"" ).on( "autocompleteselect", function( event, ui ) {
$("#buttonid").prop("disabled", false);
});