2012-04-23 42 views
23

Estoy tratando de obtener el texto seleccionado de la lista desplegable con Jquery.Jquery para obtener el texto seleccionado de la lista desplegable

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

A continuación se muestra el Jquery que estoy usando. Pero esto no está funcionando. Probé

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

y está volviendo [object objeto]. Pero, ¿cómo leer el texto seleccionado?

siguiente que intentó

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

Entonces está volviendo vacía.

También probé

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

Esto también devuelve vacío.

soy capaz de devolver el SelectedID usando

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

Pero por qué no en el texto seleccionado?

¿Hay algún problema con mi Jquery aquí? Por favor, ayuda

<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); 


      }); 

Este es el código HTML para el menú desplegable a continuación

<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> 
+0

Posible Dupe: http://stackoverflow.com/questions/196684 –

+0

'ha seleccionado:" + selectedText1 + selectedText2'? hasta donde yo sé, puede seleccionar solo una opción con la etiqueta 'select'! – undefined

Respuesta

53

que tenía el mismo problema ayer :-)

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

También leí que esto es lento, si Si quieres usarlo a menudo, probablemente deberías usar algo más.

No sé por qué la suya no está funcionando, esto es para mí, tal vez alguien más puede ayudar ...

+0

¿Cómo resolvió th th en cuestión ? – Millar

+0

$ ("# SelectedCountryId option: selected"). Text() no funciona para mí. Simplemente devuelve vacío – Millar

+0

@Millar: ¿qué problema? – Philipp

3

El problema podría estar en esta línea:

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

Se ve para el elemento con id de SelectedCountryId que se selecciona, donde realmente se desea que la opción que está seleccionado bajoSelectedCountryId, a fin de tratar:

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

Intenté $ ('# SelectedCountryId option: Selected'). text() pero está volviendo vacío – Millar

+0

Creo que accidentalmente escribí en mayúscula el 'seleccionado' –

0

Si está utilizando un <select>, $(this).val() dentro del evento change() devuelve el valor de la opción seleccionada actual. El uso de text() es redundante la mayor parte del tiempo, ya que generalmente es idéntico al valor, y en caso de que sea diferente, probablemente terminará usando el valor en el back-end y no en el texto. Por lo que sólo puede hacer esto:

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

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

EDIT: Tenga en cuenta que en caso de que su atributo value está vacía, la mayoría de los navegadores utilizan los contenidos como valor, por lo que va a trabajar de cualquier manera.

0

Obtener el texto de un múltiple desplegable contiene

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

textos ahora una lista de texto seleccionado

8

Sin ID desplegable:

$("#SelectedCountryId").change(function() { 
    $('option:selected', $(this)).text(); 
} 
0
$("#SelectedCountryId_option_selected")[0].textContent 

esto funcionó para mí, aquí en vez de [0], pase el índice seleccionado de su lista desplegable.

0

Utilice este

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

, avise "selValue" y "SelText". Usted recibe su valor desplegable seleccionado y el texto

2

Hoy en día, con jQuery, hago esto:

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

\#foo es el cuadro desplegable ID.

Lea more.

+0

Debería mantener este código dentro de $ (document) .ready (function() {}); – kavie

0
<%@ 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> 

Click to see Output Screen

Gracias ... :)

1

primer atributo Set ID de lista desplegable como hago aquí que usar esa identificación para obtener el valor de jQuery o JavaScrip.

lista desplegable:

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

jQuery:

var id = jQuery("#ddlCompany option:selected").val(); 
1
//Code to Retrieve Text from the Dropdownlist 

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