如果输入的文本对自动完成功能有效,如何启用按钮?

时间:2014-02-12 07:02:12

标签: javascript jquery vb.net autocomplete jquery-autocomplete

我有一个带有自动完成功能的文本框和一个按钮。我想只在从自动完成列表中选择一个值时启用该按钮。 怎么做?

这是我的自动完成功能:

<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>

3 个答案:

答案 0 :(得分:3)

在您的选择功能中添加:

select: function (e, i) {
        $("#<%=abc.ClientID %>").val(i.item.val);
        $("#buttonid").prop("disabled", true); // true disabled, false enabled
},

修改      $(“#buttonid”)。prop(“disabled”,false); //启用此按钮

JsFiddle - Example

答案 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);
});