JavaScript - 检查选择框中的唯一值

标签 javascript html

找不到我正在寻找的任何东西,但如果我错过了一些明显的东西,我很抱歉。我基本上是在尝试让 JavaScript 函数在提交表单然后将其输入数据库之前检查多个选择框中的每一个是否具有唯一值。

可以有任意数量的选择框,但都遵循类似的命名格式:

operator_address_type_0
operator_address_type_1
operator_address_type_2
etc.

我只是想知道如何设置一个 JavaScript 函数来遍历所有选择框并提醒用户并在发现任何具有相同值的情况下停止提交。

感谢您的帮助。

编辑:

这是我当前选择框的一些简化 HTML。我不得不大大简化它,因为它们所在的表都是通过 AJAX 从查询数据库加载的。

<select name="operator_address_type_0">
<option value="Main">Main</option>
<option value="Payment">Payment</option>
<option value="Poster">Poster</option>
</select>

<select name="operator_address_type_1">
<option value="Main">Main</option>
<option value="Payment">Payment</option>
<option value="Poster">Poster</option>
</select>

是这样的,但是以后可能会有更多的选择,我只是想看看只有一个主地址,一个支付地址,一个发帖地址等等。

最佳答案

像下面这样的东西?

function checkDuplicates() {
  var selects = document.getElementsByTagName("select"),
      i,
      current,
      selected = {};
  for(i = 0; i < selects.length; i++){
    current = selects[i].selectedIndex;
    if (selected[current]) {
      alert("Each address type may not be selected more than once.");
      return false;
    } else
      selected[current] = true;
  }
  return true;
}

演示:http://jsfiddle.net/GKTYE/

这会循环选择并记录每个选择的索引,如果找到重复则停止。这假设所有选择都具有相同顺序的相同选项。测试实际选择的值:

 current = selects[i].options[selects[i].selectedIndex].value;

关于JavaScript - 检查选择框中的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10075708/

相关文章:

html - Safari:最小高度 100% 在 flex-grow 子项中不起作用

JavaScript 播放器可以播放 MP3 并显示背景图像?

javascript - Aurelia,在route-href之前调用click函数

javascript - 使用 AWS S3 Javascript SDK 加载新网页

javascript - Handlebars.js:如何访问嵌套的每个中的父索引?

Javascript 前瞻问题!

php - 如何使用 body_class 将 CSS 类添加到 Wordpress 中的 body 标签

javascript - 将存储在 XML 中的数据传递给 onCellSelect

javascript - 当用户点击链接时隐藏/显示表单元素

javascript - 单击按钮时更改 div 内容