如何获取选择选项的文本?

时间:2012-04-18 20:18:35

标签: jquery

我有这个代码,我现在得到'mytablevalues',但我想知道我是否可以得到'myvalues',我的意思是只有选择的文本。

 <form id="aform" method="post">
 <select id="menucompare" name ="menucompare" size="1">
<option value="nothing" <?php if ($menucompare == "nothing") { echo " selected='selected'"; } ?>>Select one</option>

<option value="mytablevalue1" <?php   if ($menucompare == "mytablevalue1") { echo " selected='selected'"; } ?> >myvalue1</option>
<option value="mytablevalue2" <?php   if ($menucompare == "mytablevalue2") { echo " selected='selected'"; } ?> >myvalue2</option>
<option value="mytablevalue3" <?php   if ($menucompare == "mytablevalue3") { echo " selected='selected'"; } ?> >myvalue3</option>
<option value="mytablevalue4" <?php if ($menucompare == "mytablevalue4") { echo " selected='selected'"; } ?> >myvalue4</option>


</select>
<input type="hidden" name="hidevalue" value="<?php echo $menucompare ;  ?>" />
<noscript><input type="submit" value="Submit"></noscript>
</form>

<script type="text/javascript">

   $(document).ready(function(){
    $("select").change(function() { 
         displayVals(); 
   });
   displayVals();
 });

function displayVals() {
var singleValues = $("#menucompare").val();
$("#hiddenselect").val(singleValues);
$("p").html("Procent of :    " + singleValues);
}

并且我也遇到了默认值(无)的问题。 任何建议!

编辑。  我让它像那样工作

   <script type="text/javascript">

  $(document).ready(function(){
   $("select").change(function() { 
         displayVals(); 
   });
   displayVals();
   });

  function displayVals() {
var singleValues = $("select option:selected").text();
$("#hiddenselect").val(singleValues);
$("p").html("Procent of : &nbsp &nbsp" + singleValues);
 }

</script>

3 个答案:

答案 0 :(得分:2)

使用.text()获取您的选项的文字值:http://api.jquery.com/text/

要获取所选选项的文本,您可以使用:

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

http://api.jquery.com/selected-selector/

示例

<script type="text/javascript">
 $(document).ready(function() {

   $("#menucompare").change(function() { 
     $("p").html("Procent of : " + $("option:selected", this).text());  
     $('input[name="hidevalue"]').val($("option:selected", this).text());  
   });

 });
</script>

$('#hiddenSelect')似乎不存在于您发布的示例中,我假设您尝试设置名称为input的{​​{1}}的值,我在上面的例子中包含了这一变化。

另一件事,你的例子中没有hidevalue(除非你把它遗漏了?)。我建议您<p> <p>并选择更改它,否则您网页上每个id的价值都会发生变化。

答案 1 :(得分:1)

你可以简单地使用jQuery来做这件事,使用它(对于上面的例子)

$("#menucompare option:selected").text();

答案 2 :(得分:0)

这将为您提供所选选项的文本:

$('#menucompare').children("option[value='" + $('#menucompare').val() + "']").text();