如果选择 jquery,为什么 ASP.net 下拉列表不默认为 0

Why does the ASP.net dropdownlist does not default to 0 if chosen jquery is used

我使用的是 Chosen Jquery,这导致下拉列表无法更新。

这是HTML:

<select name="ctl00$BodyPlaceHolder$ddl1" id="ddl1" class="chose-select le">
    <option value="Select a State">Select a State</option>
    <option value="Alabama">AL</option>
    <option value="Alaska">AK</option>
    <option value="Arizona">AZ</option>
</select>

JavaScript 将所选索引设置为 0:

function setSelectedIndex(dropdownlist, selVal) {
    var ddl1 = document.getElementById(dropdownlist);
    if (selVal < ddl1.selectedIndex) {
        ddl1.selectedIndex = selVal;

        $(ddl1).val(0).trigger('chosen:updated');
    }
}

这就解决了一个问题。问题是一旦函数将所选索引设置为 0,它会将 "Select an Option" 显示为 0 索引而不是默认的第一个选项。

知道如何解决这个问题吗?

尝试这样的事情:

<select name="ctl00$BodyPlaceHolder$ddl1" id="ddl1" class="chose-select le">
 <option value="" disabled selected>Select a State</option>
     <option value="Alabama">AL</option>
    <option value="Alaska">AK</option>
    <option value="Arizona">AZ</option>
</select>

我不得不删除 .val(0),它工作正常。

$(ddl1).trigger('chosen:updated');

只需添加 data-placeholder="Choose a State" 即可

<select name="ctl00$BodyPlaceHolder$ddl1" id="ddl1" data-placeholder="Choose a State" class="chose-select le">
    <option value="Alabama">AL</option>
    <option value="Alaska">AK</option>
    <option value="Arizona">AZ</option>
</select>