如何防止自动完成选择模糊

时间:2011-08-25 19:11:54

标签: javascript jquery html

所以我正在编码这个资产跟踪器,它在表格中显示资产。签出资产时,会在其中一列中填充输入字段,以指示授权资产签出的人员。此输入框绑定到自动完成列表。当输入字段失去焦点时,框中的值应该成为该单元格的文本值,然后将其提交给数据库。问题是当在自动完成列表中单击选择时,它接受用户键入的内容而不是填写选择。我怎样才能防止这种情况发生?

    $(".checkOut").live('click', function() {
        var $this = $(this),
        $currentRow = $this.closest("tr");
        $currentRow
            .removeClass("checkedIn")
            .addClass("checkedOut");
        $this.replaceWith('<button title="Check In" class="checkIn" value="true" name="check_in"><img alt="Check In" src="../images/check.png"></button>');
        $status = "1";
        $timestamp = $.ajax({
            url: "time.php",
            async: false
        }).responseText;
        $assetname = $currentRow.find("td:eq(0)").html();       
        $currentRow.find("td:eq(2)").html($who);
        $currentRow.find("td:eq(3)").html($when);
        $currentRow.find("td:eq(4)").html('<input type="text" id="auth" name="auth" value="" />');
        $auth = $currentRow.find("input");
        $auth.autocomplete("people.php").blur(function(event, ui) {
            if(!$auth.val()) {
                alert("Someone has to authorized this check out!");
                $auth.focus();
            }
            else {
                //accept input
                $authby = $auth.val();
                $currentRow.find("td:eq(4)").text($authby);
                //submit data
                submitData($who,$when,$authby,$status,$assetname);
            }
        });
    });

提前致谢。

1 个答案:

答案 0 :(得分:0)

这是因为你得到了文本框的价值,即 $ authby = $ auth.val();

您需要做的是,获取所选项目 $ authby = ui.item.value;