Подтвердить что ты не робот

JQuery, чтобы получить SelectedText из выпадающего меню

Я пытаюсь получить выделенный текст из раскрывающегося списка с помощью JQuery.

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

Ниже приведен JQuery, который я использую. Но это не работает. Я попробовал

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

и возвращает [объект объекта]. Но как читать выделенный текст?

Далее я попробовал

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

Затем он возвращается пустым.

Я также пробовал

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

Это также пустое.

Я могу вернуть выбранный идентификатор с помощью

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>
4b9b3361

Ответ 1

У меня была такая же проблема вчера: -)

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

Я также читал, что это медленно, если вы хотите часто использовать его, вероятно, вы должны использовать что-то еще.

Я не знаю, почему ваш не работает, это для меня, может быть, кто-то может помочь...

Ответ 2

Без идентификатора выпадающего меню:

$("#SelectedCountryId").change(function () {
    $('option:selected', $(this)).text();
}

Ответ 3

Проблема может быть в этой строке:

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

Он ищет элемент с идентификатором SelectedCountryId, который выбран, где вам действительно нужен параметр, выбранный под SelectedCountryId, поэтому попробуйте:

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

Ответ 4

Сегодня, с jQuery, я делаю это:

$("#foo").change(function(){    
    var foo = $("#foo option:selected").text();
});

\#foo - это раскрывающийся список.

Прочтите подробнее.

Ответ 5

сначала установите атрибут id в раскрывающемся списке, как я делаю здесь, чем использую этот идентификатор, чтобы получить значение в jquery или javascrip.

DropDownList:

 @Html.DropDownList("CompanyId", ViewBag.CompanyList as SelectList, "Select Company", new { @id="ddlCompany" })

JQuery

var id = jQuery("#ddlCompany option:selected").val();

Ответ 6

//Code to Retrieve Text from the Dropdownlist 

$('#selectOptions').change(function()
{
     var selectOptions =$('#selectOptions option:selected');
     if(selectOptions.length >0)
     {
        var resultString = "";
        resultString = selectOptions.text();
     }
});

Ответ 7

Если вы используете <select>, $(this).val() внутри события change() возвращает значение текущей выбранной опции. Использование text() является избыточным в большинстве случаев, поскольку оно обычно идентично значению, а в другом случае вы, вероятно, в конечном итоге используете значение в фоновом режиме, а не в тексте. Поэтому вы можете просто сделать это:

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

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

РЕДАКТИРОВАТЬ: Обратите внимание: если ваш атрибут value пуст, большинство браузеров используют его как значение, поэтому он будет работать в любом случае.

Ответ 8

Получить текст из раскрывающегося списка

var texts = [];
$('#list :selected').each(function(){
    texts.push($(this).text());
});
Тексты

теперь содержат список выделенного текста

Ответ 9

$("#SelectedCountryId_option_selected")[0].textContent

это сработало для меня, вместо [0], передать выбранный индекс вашего выпадающего списка.

Ответ 10

Пожалуйста, используйте этот

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

Затем, пожалуйста, сообщите "selValue" и "selText". Вы получаете свое выделенное выпадающее значение и текст

Ответ 11

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="jquery-3.1.0.js"></script>
    <script>
        $(function () {
            $('#selectnumber').change(function(){
                alert('.val() = ' + $('#selectnumber').val() + '  AND  html() = ' + $('#selectnumber option:selected').html() + '  AND .text() = ' + $('#selectnumber option:selected').text());
            })
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <select id="selectnumber">
            <option value="1">one</option>
            <option value="2">two</option>
            <option value="3">three</option>
            <option value="4">four</option>
        </select>

    </div>
    </form>
</body>
</html>

Нажмите, чтобы увидеть экран вывода

Спасибо...:)