使用javascript自动选择下拉列表并运行jquery

时间:2017-01-31 13:20:55

标签: javascript c# jquery html autocomplete

在html页面中,当我们从第一个jquery工作中找到somthing并显示下一个下拉列表的更多选项时,我们有2个dropdon列表,这是一个HTML代码:

            <select name="cat_level1" id="cat_level1" size="1" class="form-control input-inline">
                <option value="0">1</option>
                <option value="8">2</option>
                <option value="6">3</option>    
            </select>
            <select name="cat_level2" id="cat_level2" size="1" class="form-control input-inline">
                <option value="0">-</option>
            </select>

            <script>
            $("#cat_level2").chained("#cat_level1");
            </script>

现在我尝试使用javascript从我的win应用程序中以编程方式选择dropdownlist选项,我使用此代码进行选择:

        var len = element.options.length;
        for (int i = 0; i < len; i++)
        {
            if (element.options[i].value == selected_val)
            {
                element.options[i].selected = true;
                break; ;
            }
        }

多数民众赞成有效,但是代码jquery不起作用,我们在secend下拉列表中没有任何选项。 如何在select之后选择运行jquery的选项?

2 个答案:

答案 0 :(得分:0)

你为什么不尝试这个?

$('yourSelect').find('option[value='+selected_val+']').attr('selected', true);

编辑:没有jQuery

    var len = element.options.length;
    for (int i = 0; i < len; i++)
    {
        if (element.options[i].value == selected_val)
        {
            //element.options[i].selected = true;
            element.options[i].setAttribute('value',true);
            break;
        }
    }

答案 1 :(得分:0)

当通过代码选择该选项时,不会触发事件,这可能是第二次选择未更新的原因。

int使用var会导致错误。使用element.dispatchEvent通过代码进行火灾更改事件。

var len = element.options.length;
for (var i = 0; i < len; i++)
{
     if (element.options[i].value == selected_val)
     {
         element.options[i].selected = true;
         var event = new Event('change');
         element.dispatchEvent(event);
         break; ;
     }
}

您还需要从更改事件处理程序调用链式函数。

$("#cat_level1").on("change", function(){
   $("#cat_level2").chained("#cat_level1");
});