从select元素中选择选项

时间:2010-03-04 15:00:21

标签: jquery html-select

我正在尝试从下拉列表中获取所选选项,并使用该文本填充另一个项目,如下所示。 IE正在咆哮,它在Firefox中不起作用:

$('#ddlCodes').change(function() {
  $('#txtEntry2').text('#ddlCodes option:selected').text();
});

我做错了什么?

12 个答案:

答案 0 :(得分:186)

这是一个简短的版本:

$('#ddlCodes').change(function() {
  $('#txtEntry2').text($(this).find(":selected").text());
});

karim79很有吸引力,根据您的元素名称txtEntry2判断可能是一个文本框,如果是任何类型的输入,则需要使用.val()代替.text() 1}}像这样:

  $('#txtEntry2').val($(this).find(":selected").text());

对于“出了什么问题?”问题的一部分:.text()不接受选择器,它接受您想要设置的文本,或者不返回已存在的文本。因此,您需要获取所需的文本,然后将其放在要设置的对象的.text(string)方法中,就像我上面一样。

答案 1 :(得分:15)

试试这个:

$('#ddlCodes').change(function() {
  var option = this.options[this.selectedIndex];
  $('#txtEntry2').text($(option).text());
});

答案 2 :(得分:8)

这是一个更短的版本,也应该有效:

 $('#ddlCodes').change(function() {
      $('#txtEntry2').text(this.val());
    });

答案 3 :(得分:4)

使用更少的jQuery:

<select name="ddlCodes"
 onchange="$('#txtEntry2').text(this.options[this.selectedIndex].value);">

this.options[this.selectedIndex].value是纯JavaScript。

(资料来源:German SelfHTML

答案 4 :(得分:2)

尝试以下代码

$('#ddlCodes').change(function() {
  $('#txtEntry2').val(  $('#ddlCodes :selected').text() );
});

答案 5 :(得分:2)

要知道所选元素的数量,请使用

$("select option:selected").length

要获取所有选定元素的值,请使用

    var str = "";
  $("select option:selected").each(function () {
        str += $(this).text() + " ";
      });

答案 6 :(得分:1)

这对我有用:

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

答案 7 :(得分:1)

第一部分是从下拉菜单中获取元素,如下所示:

<select id="cycles_list">
    <option value="10">10</option>
    <option value="100">100</option>
    <option value="1000">1000</option>
    <option value="10000">10000</option>
</select>

要通过jQuery捕获,你可以这样做:

$('#cycles_list').change(function() {
    var mylist = document.getElementById("cycles_list");
    iterations = mylist.options[mylist.selectedIndex].text;
});

将值存储在变量中后,下一步就是将存储在变量中的信息发送到您选择的表单字段或HTML元素。它可能是div p或自定义元素。

  

即。 <p></p> OR <div></div>

你会使用:

  

$(&#39; P&#39)的HTML(迭代)。 OR $(&#39; div&#39;)。html(迭代);

如果您希望填充文本字段,例如:

  

<input type="text" name="textform" id="textform"></input>

你会使用:

  

$(&#39; #textform&#39;)。text = iterations;

当然,您可以用更少的步骤完成上述所有操作,我只相信当您将其全部分解为易于理解的步骤时,它可以帮助人们学习...希望这会有所帮助!

答案 8 :(得分:1)

使用selectedOptions属性(HTML5),您可以获得所选的选项

document.getElementbyId("id").selectedOptions; 

通过这样做可以实现JQuery

$("#id")[0].selectedOptions; 

$("#id").prop("selectedOptions");

该属性包含一个类似的HTMLCollection数组 一个选定的选项

[<option value=​"1">​ABC</option>]

或多项选择

[<option value=​"1">​ABC</option>, <option value=​"2">​DEF</option> ...]

答案 9 :(得分:0)

上面会很好用,但似乎你错过了下拉文本的jQuery类型转换。除此之外,建议使用.val()为输入文本类型元素设置文本。通过这些更改,代码将如下所示:

    $('#txtEntry2').val($('#ddlCodes option:selected').text());

答案 10 :(得分:0)

如果您已经拥有并使用jquery,这将是您的答案:

$($(本)[0] .selectedOptions [0])。文本()

答案 11 :(得分:0)

鉴于此HTML:

<select>
    <option value="0">One</option>
    <option value="1">Two</option>
</select>

按jQuery v1.6 +的说明选择:

var text1 = 'Two';
$("select option").filter(function() {
    //may want to use $.trim in here
    return $(this).text() == text1; 
}).prop('selected', true);