0

提供する前にページの数に応じて複数の選択を作成し、選択されているのと同じ数のオプションを作成する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

4

3 に答える 3

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('...');
            }
        }
    });
}

私は試していませんが、うまくいかない場合は、いくつかの詳細を変更する必要があるかもしれません。

于 2013-04-12T19:20:35.690 に答える
0

基本的に、各選択をループして重複を通知するための変更イベントを探しています。

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

このようなものが動作するはずです

于 2013-04-12T19:11:16.140 に答える
0
  • 変更イベントをリッスンする
  • 要素の selectedIndex を取得します
  • ですべての選択を取得しますgetElementsByTagName()
  • ループして選択したインデックスを取得する
  • 使っているか比べてみよう
于 2013-04-12T19:11:36.193 に答える