2

指定された値がドロップダウン ボックスに見つからない場合、新しい値をドロップダウン リストに追加できるようにするには、次のコードをどのように変更できますか?

現在、以下の特定の関数を使用して、ドロップダウン ボックスで特定の値 (option_name) を見つけています。

option_name が見つからないことを警告する代わりに、基本的に新しい option_name を既存のドロップダウン リストに追加するように、負のフラグ (!flag) を変更したいと思います。

すなわち。

get_position( 'drop', 'flower' ) 


<select id="drop" style="width: 200px;">
    <option value="0"></option>
    <option value="1">apples</option>
    <option value="2">oranges</option>
    <option value="3">pears</option>
    <option value="4">mangos</option>
    <option value="5">bananas</option>
    <option value="6">kiwis</option>
</select>

function get_position(id,option_name) {

    var flag = false;

    for ( var i=0; i <= document.getElementById(id).options.length - 1; i++ ) {

        if (document.getElementById(id).options[i].text === option_name)  {

            document.getElementById(id).selectedIndex = i; 
            flag = true;

        }
    }
}
4

1 に答える 1

5

一致が見つかった場合は return false を使用して、レコードを追加できます

   function get_position(id,option_name) {

                var flag = false;
            var length=document.getElementById(id).options.length;
                for ( var i=0; i <= length - 1; i++ ) {

                    if (document.getElementById(id).options[i].text == option_name)  {

                        document.getElementById(id).selectedIndex = i; 
                       return false;
                    } 
           }
              //add item on drop down now 
                document.getElementById(id).options[length] = new Option( txt, length );
                document.getElementById(id).selectedIndex = length;

            }

Jqueryを使用できる場合は、次のようなものがあります

if($("#id option:contains('option_name')").length ==0)
{

$("#id").append(new Option("option text", "value"));

}
于 2012-12-21T21:37:15.960 に答える