Jquery,在Event上选择下拉选项

时间:2016-07-13 14:18:39

标签: javascript jquery asp.net-mvc

我有一个带有事件密钥的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;
            }                
        });

    });
});

2 个答案:

答案 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;
            }

        });

    });
});