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 に答える