添加到下拉菜单的javascript函数
好吧,假设我有这样的下拉菜单:添加到下拉菜单的javascript函数,javascript,drop-down-menu,insert,Javascript,Drop Down Menu,Insert,好吧,假设我有这样的下拉菜单: <form action="" method="POST" name="myform"> <select name="test_select"> <option value="1">my val 1</option> <option value="3">my val 3</option>
<form action="" method="POST" name="myform">
<select name="test_select">
<option value="1">my val 1</option>
<option value="3">my val 3</option>
<option value="4">my val 4</option>
</select>
<input type="submit" value="test_button" name="test_button">
</form>
<form action="" method="POST" name="myform">
<select name="test_select">
<option value="1">my val 1</option>
<option value="2">my val 2</option>
<option value="3">my val 3</option>
<option value="4">my val 4</option>
</select>
<input type="submit" value="test_button" name="test_button">
</form>
只是一份基本菜单。如何使用函数搜索并向菜单中添加值2?我希望它最终看起来像这样:
<form action="" method="POST" name="myform">
<select name="test_select">
<option value="1">my val 1</option>
<option value="3">my val 3</option>
<option value="4">my val 4</option>
</select>
<input type="submit" value="test_button" name="test_button">
</form>
<form action="" method="POST" name="myform">
<select name="test_select">
<option value="1">my val 1</option>
<option value="2">my val 2</option>
<option value="3">my val 3</option>
<option value="4">my val 4</option>
</select>
<input type="submit" value="test_button" name="test_button">
</form>
我试着做一个函数,来显示我在用这个函数做什么
<script>
function addItems()
{
var option = document.createElement("option");
option.text = "val 2"
option.value = 2
for (var i = 1; i < 3; i++; ) {
if (document.getElementsByName.value < 2) {
option.text = "val 2"
option.value = 2
}
}
}
</script>
如何使此功能正常工作?转到此链接可能会有所帮助
希望对您有所帮助我对您的代码进行了一些修改,使其能够正常工作
function addItems()
{
var option = document.createElement("option");
option.text = "val 2";
option.value = 2;
var select = document.getElementsByName('test_select');
var firstGreater = null;
if (select.length > 0)
{
for(var i = 0; i < select[0].children.length; i++)
{
if (select[0].children[i].value > 2)
{
firstGreater = select[0].children[i];
break;
}
}
if (firstGreater != null)
select[0].insertBefore(option, firstGreater);
else
select[0].appendChild(option);
}
}
此代码段不需要添加库,您可以在此处看到实时演示首先,您有很多语法错误。但是让我们从HTML开始
<form action="" method="POST" name="myform">
<select name="test_select" id="test_select">
<option value="1">my val 1</option>
<option value="3">my val 3</option>
<option value="4">my val 4</option>
</select>
<input type="button" value="test_button" name="test_button" onclick="addItems();">
</form>
在select中添加id属性,以便能够在javascript代码中找到元素。还要将onclick回调添加到该按钮,以便在单击该按钮时调用该函数。我将类型从submit更改为button,以避免重新加载页面
代码如下:
function addItems() {
var option = document.createElement("option");
option.text = "my val 2"
option.value = 2
var combo = document.getElementById("test_select");
var found = false;
for (var i = 0; i < combo.length; i++) {
if (parseInt(combo[i].value) > 2) {
combo.add(option, combo[i]);
found = true;
break;
}
}
if(!found) {
combo.add(option, null);
}
return false;
}
combo变量指向您的select,因此您可以调用length来获取当前大小,还可以使用[]来获取给定位置的选项
.add函数在作为第二个参数传递的选项之前添加新选项,如下所述:
此代码假定您的选项已预先排序
有关更多信息:
谢谢,这看起来很有希望!看看我的答案,如果对你有帮助,就接受它,谢谢