我正在尝试根据使用 jquery 在文本框中输入的文本来选择列表框中的项目。如果文本框中输入的文本长度大于 1,我想循环遍历列表框中的项目并比较每个项目的值,如果它与文本框中输入的数字匹配,我需要在中选择/突出显示它列表框。这是我正在做的事情,但似乎不起作用。 ListBox 的 ListItem 是在运行时从数据库填充的。
ASP.NET
<asp:TextBox ID="txtMediaCode" runat="server" MaxLength="2" Width="40px" />
<asp:ListBox ID="lsMediaCodes" runat="server" Width="296px" />
Jquery
<script type="text/javascript">
$(document).ready(function () {
$('#txtMediaCode').keyup(function () {
if ($('#txtMediaCode').length > 1) {
$('#lsMediaCodes').each(function (i, option) {
if ($(option).val() == $('#txtMediaCode').val()) {
$(option).attr('selected', 'selected');
}
});
}
});
});
</script>
有人有什么建议吗?
最佳答案
尝试 -
$(document).ready(function() {
$('#txtMediaCode').keyup(function() {
console.log('in')
if ($('#txtMediaCode').val().length > 1) {
$('#lsMediaCodes > option').each(function(i, option) {
if ($(option).val() == $('#txtMediaCode').val()) {
$(option).attr('selected', 'selected');
}
});
}
});
});
这是您的代码,进行了一些更改 -
- 现在它会检查“#txtMediaCode”文本框中值的长度 而不是页面上有多少元素
- each 选择器已更改为
$('#lsMediaCodes > option').each(
这将选择所有选项元素而不仅仅是列表本身
关于jquery - 根据 TextBox 中的文本选择 ListBox 中的 ListItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7891596/