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

时间:2012-04-09 15:39:47

标签: 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>

就是这样,但将来会有更多的选择,我只想检查一下只有一个主要地址,一个付款地址,一个海报地址等。

1 个答案:

答案 0 :(得分:4)

如下所示?

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;