将选定的输入选项设置为变量值

时间:2013-06-06 03:16:48

标签: jquery html

我有一个动态创建的选择输入菜单,这会创建一个行项目。然后,用户可以单击该行以编辑其选择。我在设置变量的默认下拉选项时遇到问题。我在jsfiddle中放了我的问题的简化版本。

http://jsfiddle.net/SteveRobertson/cPtLj/1/

我在小提琴中尝试做的是默认选项是option3。

我也尝试过使用"价值"而不是" text"这样做

   $("#selectid option[value='"+cat+"']").prop("selected", "selected");

我似乎无法获得设定值。任何帮助,将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:2)

var text1 = 'your text';
$("select option").filter(function() {
    return $(this).text() == text1; 
}).prop('selected', true);

或使用

<select id="selectid">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>

$(document).ready(function () {
 $("#selectid").val("option3");
});

答案 1 :(得分:2)

<强> Working jsFiddle Demo

试试这个:

$(document).ready(function() {
    var cat = 'option3';
    $("#selectid option:contains(" + cat + ")").prop("selected", true);
});

注意:

  • 在你的jsFiddle中,你没有包含jQuery ..
  • 您在代码中使用catstring,而不是variable
  • 在这种情况下,我使用了:contains() Selector
  • .prop()方法需要boolean作为其第二个参数。

参考文献:


已更新

这种方法很公平。它也适用于option11option111等选项:

$(document).ready(function() {
    // your string
    var cat = 'option11';

    // get all options
    $("#selectid option")
        // remove all selected
       .prop("selected", false)

       // now filter the one you want
       .filter(function () {
           return $.trim($(this).text()) == cat;
       })
            // select it
           .prop('selected', true);

});

答案 2 :(得分:0)

首先,你还没有把jQuery库包含在你的小提琴中。

$('document').ready(function () {
    $("select#selectid").val("option3");
});

查看此JSFiddle