所以我正在编码这个资产跟踪器,它在表格中显示资产。签出资产时,会在其中一列中填充输入字段,以指示授权资产签出的人员。此输入框绑定到自动完成列表。当输入字段失去焦点时,框中的值应该成为该单元格的文本值,然后将其提交给数据库。问题是当在自动完成列表中单击选择时,它接受用户键入的内容而不是填写选择。我怎样才能防止这种情况发生?
$(".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);
}
});
});
提前致谢。
答案 0 :(得分:0)
这是因为你得到了文本框的价值,即 $ authby = $ auth.val();
您需要做的是,获取所选项目 $ authby = ui.item.value;