关于您的Question#1,我认为您无法控制这种行为。(虽然我可能是错的)。
编辑以包含问题#1 的答案:因为,无法定义暂停的时间长度;我在这里假设要开始重新搜索组合;应该按空格键
function checkBlank() {
if (event.keyCode == 32) {
document.getElementById('ddlMain').value = '';
document.getElementById('txtSearchText').value = '';
return false;
}
document.getElementById('txtSearchText').value = document.getElementById('txtSearchText').value + String.fromCharCode(event.which);
makeSelection();
return true;
}
function makeSelection() {
var options = document.getElementById('ddlMain').options;
var matchString = document.getElementById('txtSearchText').value.toLowerCase();
for (i = 0; i < options.length; i++) {
if (options[i].value.toLowerCase().indexOf(matchString) == 0) {
options[i].selected = true;
return;
}
}
}
<asp:DropDownList runat="server" ID="ddlMain" onkeydown="javascript:return checkBlank();">
<asp:ListItem Text="" />
<asp:ListItem Text="Apple" />
<asp:ListItem Text="Orange" />
<asp:ListItem Text="Banana" />
</asp:DropDownList>
<asp:HiddenField runat="server" ID="txtSearchText" />
简单来说Question#2
,您可以使用 javascript 如下所示
function checkBlank() {
if (event.keyCode == 32) {
document.getElementById('ddlMain').value = '';
return false;
}
return true;
}
<asp:DropDownList runat="server" ID="ddlMain" onkeydown="javascript:return checkBlank();">
<asp:ListItem Text="" />
<asp:ListItem Text="Apple" />
<asp:ListItem Text="Orange" />
<asp:ListItem Text="Banana" />
</asp:DropDownList>