表单选择选项动态attr

时间:2013-11-13 13:12:02

标签: javascript jquery html5 forms

我需要使用选项值选择名称,以选择特定值或索引。数据来自db的值为“{{design}}”。 我确实得到了价值,但我没有设法在当前选项值上设置“选中”。 这是代码:

console.log("{{design}}");
$(document).ready(function () {
       var options = $('select').children('option');
    var size =    $('select').children('option').length;
    for (i=0;i<size;i++)
    {
        if ( options[i].innerHTML==="{{design}}")
        {
            options.selectedIndex=i;
        }
    }
});

html是:

      <select name="design" required id="design"  >
                <option value="1">flowers</option>
                <option value="2">classic</option>
                <option value="3">roses</option>
            </select>

我需要制作当前{{design}}值,让我们说它是2,所以它将是<option value="2" selected>classic</option&gt;`

谢谢!

解决

嗨,如果有人遇到麻烦,找到问题的解决方案。

 $(document).ready(function () {
            var options =      $('select').children('option');
        var size =    $('select').children('option').length;
        for (i=0;i<size;i++)
        {
            if ( $('select').children('option')[i].value === "{{design}}")
            {

                 $('select').children('option')[i].selected=true;
            }
        }
    });

当前的方法是找到正确的选项值然后 - > [I] .selected =真

古德勒克

3 个答案:

答案 0 :(得分:0)

如果我理解得对,那么你走在正确的道路上只是稍微绕道而行。试试这个:

if ( options[i].innerHTML==="{{design}}")
    {
        options.attr('selected', 'selected');
    }

.each()用法的例子:

$(document).ready(function(){
    $('select option').each(function(i){
        if( i.value === "{{design}}"){
            $(this).attr('selected','selected');
        }
    });
});

答案 1 :(得分:0)

试试这个

var selectedvalue=2; //option with value 2 should be selected
$("#design option[value=selectedvalue]").attr("selected","selected");

希望这会有所帮助......

答案 2 :(得分:0)

试试这个:

$(document).ready(function(){
    $('select option').each(function(i){
       //if this option contains the word "{{design}}" Then this is selected
        if( $(this).html().indexOf("{{design}}") != -1)
            $(this).attr('selected',true);
    });
});