用户在动态创建的<choices> </choices> </option>中选择相同的<option>时发出警报

时间:2013-04-12 19:07:00

标签: javascript php html html-select

我有一个PHP页面,根据页面提供的数量创建多个选项,并创建相同数量的选项(选择优先级)。

<select name="select1" id="idSelect" onchange="javascript:SelectOnChange();">
    <option value="Select one">Select one</option>
    <option value="1">1</option>
    <option value="2">2</option>
</select>

我想要做的是,每当用户选择已在另一个选择中选择的选项时,显示alert以便让他们知道已经采取了他们的选择并拒绝更改。

每当用户从每个select中选择一些内容时,我想将当前选定的选项与之前选择的每个选项进行比较。

3 个答案:

答案 0 :(得分:0)

基本上,您正在寻找一个更改事件来遍历每个选择并通知重复项。

$("select").change(function() {
    var currentSelection = this.value;
    $("select").each(function() {
        if (this.value == currentSelection)  {
            alert("you've already chosen this!");
        } 
    });
});

这样的事情应该有效

答案 1 :(得分:0)

  • 倾听变化事件
  • 获取元素的seletedIndex
  • 使用getElementsByTagName()
  • 抓取所有选择
  • 循环并获取所选索引
  • 比较以查看是否使用

答案 2 :(得分:0)

这可能有用:

var $selects = $('select');

// WHen a select is changed.
$selects.onchange(function() {
    // Storing it's selected value, assuming there is only one per select.
    var value = $(this).selected().first().attr('value');
    var $changedSelect = $(this);
    // For each select...
    $selects.each(function() {
        var $otherSelect = $(this);
        // ...that is not the one that just changed.
        if( ! $otherSelect.is($changedSelect)) {
            // If that other select's selected value is the same as the changed one's
            if($otherSelect.selected().first().attr('value') === value) {
                alert('...');
            }
        }
    });
}

我没有尝试过,如果它不起作用,你可能需要更改其中的一些细节。