2012-04-23 273 views
23

我想從下拉列表中使用Jquery獲取選定的文本。Jquery從下拉列表中獲取SelectedText

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

這也返回空。

我能夠回到使用

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

的selectedID但是,爲什麼不選擇的文本?

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


      }); 

這低於

<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

可能杜佩:http://stackoverflow.com/questions/196684 – 2012-04-23 23:34:33

+0

'你選擇:」 + selectedText1 + selectedText2'?據我所知,你可以用'select'標籤選擇一個選項! – undefined 2012-04-23 23:39:49

回答

53

我的下拉列表中HTML昨天我有同樣的問題:-)

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

我也看了,這是緩慢的,如果你想要經常使用它,你應該使用別的東西。

我不知道爲什麼你不工作,這個人是我,也許別人可以幫助...

+0

你是怎麼解決的有問題嗎? – Millar 2012-04-23 23:35:58

+0

$(「#SelectedCountryId option:selected」)。text() 對我不起作用,只是返回空的 – Millar 2012-04-23 23:43:45

+0

@Millar:哪個問題? – Philipp 2012-04-23 23:44:26

3

這個問題可能是在這條線:

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

它看起來對於具有SelectedCountryId的ID選擇的項目,在那裏你真的想要一個選中後SelectedCountryId下的選項,所以嘗試:

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

我試過$('#SelectedCountryId option:Selected')。文本() 但它返回空 – Millar 2012-04-23 23:41:49

+0

我想我不小心大寫'選擇' – 2012-04-24 01:02:19

0

如果您使用的是<select>,事件中的$(this).val()將返回當前選定選項的值。在大多數情況下使用text()是多餘的,因爲它通常與該值相同,如果情況不同,最終可能會在後端使用該值,而不是文本。所以,你可以只是這樣做:

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

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

編輯:請注意,如果您的value屬性是空的,大多數瀏覽器使用的內容價值,所以它會工作無論哪種方式。從下拉多

0

獲取文本現在

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

文本包含選定的文本

8

沒有下拉ID列表:

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

這個工作對我來說,在這裏,而不是[0],傳遞您的下拉列表中選定的索引。

0

請使用

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

然後請提醒 「selValue」 和 「selText」。你得到你所選擇下拉菜單的值和文本

2

今天,使用jQuery,我這樣做:

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

\#foo是下拉框ID。

閱讀more。下拉列表的

+0

應該保持這個代碼在$(document).ready(function(){}); – kavie 2017-07-05 14:10:28

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

謝謝... :)

1

第一套id屬性就像我在這裏做的比中使用該ID的jQuery的javascrip或中獲取價值。

下拉列表:

@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(); 
    } 
}); 
相關問題