如果在下拉框中找不到指定的值,是否可以修改下面的代码以允许将新值添加到下拉列表中?
现在,我使用下面的给定函数在下拉框中查找给定值(option_name)。
我想修改负标志(!标志),以便在现有的下拉列表中基本添加新的option_name,而不是提醒我它没有找到option_name。
即
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;
}
}
}
答案 0 :(得分:4)
如果发现任何匹配,您可以使用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"));
}