2

我有一个下拉列表,其中包含供应商名称及其 ID 的集合。我正在尝试根据模型中供应商的名称设置下拉列表的选定值。

这是我的代码:

<script type="text/javascript" language="javascript">
    $(document).ready(function () {

        $("#vendors option:contains(@Model.Vendor)  // @Model.Vendor = "A B & C"
            .attr('selected', 'selected');

    });
</script>

@Html.DropDownList("vendors",
    new SelectList(Model.Vendors, "VendorID", "Name"),
    "- Select a Vendor -")

出于某种原因,如果名称包含 & 符号,则不会选择下拉列表项。但如果不是,则列表项将被选中。

有没有办法来解决这个问题?

4

1 回答 1

1

像这样的字符&在出现在 HTML 中时会被编码(例如&变成&amp;)。要将您的文本与元素的实际文本值进行比较,您可以使用以下内容:

$("#vendors option").filter(function() {
  return $(this).text().indexOf(@Model.Vendor) > -1; // @Model.Vendor = "A B & C"
}).prop('selected', true);

此外,要将选项设置为“已选择”,正确的使用方法是prop(在每个 jQuery 1.6+ 版本中)。

于 2013-02-05T01:57:52.937 回答