我有一个带有事件密钥的Jquery。 它选择dropdownList(CityId)选项,当用户在inputbox(finpost)中写入时,该文本被喜欢/ samme。
问题是只能工作一次..我看不出什么错了?! 帮助
$(document).ready(function () {
$('#finpost').keyup(function ()
{
$("#CityId > option").each(function ()
{
var t = this.text.toUpperCase();
if (t.indexOf($('#finpost').val().toUpperCase()) != -1)
{
$(this).attr("selected", 'true');
return false;
}
});
});
});
答案 0 :(得分:0)
这项工作只需要一次,因为您的列表每次只能有一个选定的选项,但在您的脚本逻辑中,每次找到匹配时都会将属性设置为true而不重新初始化其他选项
如果你试试这个,我认为你应该好好去看看
$(document).ready(function () {
$('#finpost').keyup(function ()
{
var matchingFound = false;
$("#CityId > option").each(function ()
{
var t = this.text.toUpperCase();
if (t.indexOf($('#finpost').val().toUpperCase()) != -1 && !matchingFound)
{
$(this).attr("selected", 'true');
matchingFound = true;
}
else {
$(this).attr("selected", "false");
}
});
});
});
答案 1 :(得分:0)
现在它的工作。问题在于这个linie: $(this).attr(' selected',true); ..
我将其更改为$(this).prop(' selected',true); 及其工作
$(document).ready(function () {
$('#finpost').keyup(function () {
$("#CityId > option").each(function () {
var t = this.text.toUpperCase();
if (t.indexOf($('#finpost').val().toUpperCase()) != -1) {
$(this).prop('selected', true);
return false;
}
});
});
});