29

Jqueryを使用してドロップダウンリストから選択したテキストを取得しようとしています。

<div>
    @Html.DropDownList("SelectedCountryId", Model.CountryList, "(Select one Country)")
</div>

以下は、私が使用しているJqueryです。しかし、これは機能していません。私は試した

var selectedText1 = $("#SelectedCountryId").val($(this).find(":selected").text()); 

[object object] を返しています。しかし、選択したテキストを読む方法は?

次に試したのは

var selectedText2 = $("#SelectedCountryId:selected").text();

その後、空に戻ります。

私も試しました

var selectedText2 = $("#SelectedCountryId option:selected").text();

これも空に戻りました。

を使用してselectedIDを返すことができます

var selectedID = $("#SelectedCountryId").val();

しかし、なぜ選択されたテキストではないのでしょうか?

ここで私のJqueryに何か問題がありますか? 助けてください

<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#SelectedCountryId").change(function () {

                var selectedText1 = $("#SelectedCountryId").val($(this).find(":selected").text());
                var selectedText2 = $("#SelectedCountryId:selected").text();
                alert("You selected :" + selectedText1 + selectedText2 );


            });

これは、以下のドロップダウンの HTML です。

<select id="SelectedCountryId" name="SelectedCountryId"><option value="">(Select one Country)</option>
<option value="19">USA</option>
<option value="10">Germany</option>
<option value="12">Australia</option> </select>
4

11 に答える 11

67

私は昨日同じ問題を抱えていました:-)

$("#SelectedCountryId option:selected").text()

また、これは遅いことも読みました。頻繁に使用したい場合は、おそらく他のものを使用する必要があります。

なぜあなたが機能していないのかわかりません、これは私のためです、多分誰か他の人が助けることができます...

于 2012-04-23T23:34:04.480 に答える
3

問題は次の行にある可能性があります。

            var selectedText2 = $("#SelectedCountryId:selected").text();

IDが選択されているアイテムを探していSelectedCountryIdます。ここで、で選択されているオプションが本当に必要なので SelectedCountryId、次を試してください。

$('#SelectedCountryId option:selected').text()
于 2012-04-23T23:36:16.827 に答える
0

を使用している場合<select>、イベント$(this).val()内でchange()現在選択されているオプションの値が返されます。ほとんどの場合、使用text()は冗長です。通常は値と同じであり、場合によっては異なる場合、テキストではなくバックエンドで値を使用することになるでしょう。したがって、これを行うことができます:

http://jsfiddle.net/elclanrs/DW5kF/

var selectedText2 = $(this).val();

編集:value属性が空の場合、ほとんどのブラウザーはコンテンツを値として使用するため、どちらの方法でも機能することに注意してください。

于 2012-04-23T23:45:29.980 に答える
0

これを使用してください

    var listbox = document.getElementById("yourdropdownid");
    var selIndex = listbox.selectedIndex;
    var selValue = listbox.options[selIndex].value;
    var selText = listbox.options[selIndex].text;   

次に、「selValue」と「selText」をアラートしてください。選択したドロップダウン値とテキストを取得します

于 2015-05-14T11:51:21.880 に答える
0
$("#SelectedCountryId_option_selected")[0].textContent

これは私にとってはうまくいきました。ここでは[0]、ドロップダウンリストの選択したインデックスを渡します。

于 2014-05-21T06:54:18.783 に答える
0

複数のドロップダウンからテキストを取得する

var texts = [];
$('#list :selected').each(function(){
    texts.push($(this).text());
});

texts に選択したテキストのリストが含まれるようになりました

于 2012-11-14T16:25:17.550 に答える