如何让 HTML 组合框保存用户在文本框中添加的值?

新手上路,请多包涵

我为网页制作了一个组合框。它从用户那里获取值到文本框中,并在双击文本框时将这些值添加到列表中。我想让用户输入的值作为选项永久存储在列表中。我该怎么做。还有一个问题是如何计算列表中选项的数量,以便在其旁边添加一个元素。

这是我的代码。

 <html>
<head>
<script language="javascript">
function AddListItem(form)
{

var TestVar = form.txtInput.value;
form.txtInput.value = "";
form.select.options[3]=new Option(TestVar, TestVar, true);

}
</script>
<head>

<body>
<form id='Form1'>
<input id='txtInput' type='text' maxlength = "5" size="5" ondblclick="AddListItem(this.form)"/>
<p>
<select id='select'>
<option>abc</option>
<option>cde</option>
<option>efg</option>
</select>
</form>
</body>
</html>

原文由 XCeptable 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 297
2 个回答

要永久添加,您需要一个服务器端脚本。

要临时添加,您可以使用 javascript:

 function addVal(newVal) {
  var sel = document.getElementById('select');
  var opt = document.createElement("OPTION");

  sel.addChildNode(opt);
  opt.innerHTML = newVal;
  opt.value = newVal; //(alternatively)
}

要计算选项的数量:

 function countOpts() {
  var sel document.getElementById('select');
  return sel.options.length;
}

(仅供概念使用,未作为功能测试)

原文由 Ben 发布,翻译遵循 CC BY-SA 2.5 许可协议

听起来你需要一个服务器端脚本。当您提交表单时,您可以拥有一个“记住”所有下拉选项的字段:

简化的 HTML:

 <form method='post' action=''>
  <input name='newDDoption' />
  <input type='hidden' name='ddStorage' value='<?PHP echo implode("|||",$ddOptions); ?>' />
  <button>GO</button>
</form>

简化的 PHP:

 <?PHP
$ddOptions = explode("|||",$_POST['ddStorage']);
$ddOptions[] = $_POST['newDDoption'];

echo "<select>";
for($x=0;$x<count($ddOptions);$x++) {
  echo "<option>".$ddOptions[$x]."</option>";
}
echo "</select>";
?>

解释一下:PHP 将 ddOptions 保存在表单中 -> 用户输入新选项 -> 提交表单 -> PHP 找到存储的值 -> PHP 推送新值 -> PHP 循环并创建永久下拉菜单。

原文由 Ben 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题