1

ユーザーが2つのドロップダウンメニューで同じ値を使用できないようにしようとしています。選択した値に関係なく、Jqueryはtrueを返します。

$("select[id$='go']").change(function() {
    var value = $(this);
    $("select[id$='go']").each(function() {
        if ($(this).val() === value.val()) {
            $('#work').html("DUBS");
        }
    });
});

<select id="_go">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

<select id="_gogo">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

<div id="work"></div>

http://jsfiddle.net/zbaKE/1/

これを行う適切な方法はありますか?

4

4 に答える 4

2

ユーザーが他のドロップダウンから同じ値を選択できないようにする場合は、次のようなものを使用できます。

var $select = $("select[id$='go']");
$select.change(function() {
    $select
      .not(this)
      .find('option')
      .prop('disabled', '')
      .filter('[value='+this.value+']')
      .prop('disabled','disabled');
});
$select.eq(0).trigger('change');

ワーキングケースはこちら( .not(), .find(), .prop(), .filter())

于 2012-05-29T23:41:20.667 に答える
1

の DUBS テキストを削除する必要がありfalse、同じ選択フィールドをテストしないでください。not()これを達成するために使用します。

デモ: http://jsfiddle.net/zbaKE/3/

$("select[id$='go']").change(function() {
   var value = $(this).val();
   $("select[id$='go']").not(this).each(function() {
       if ($(this).val() == value) {
           $('#work').html("DUBS");
       }else{
           $("#work").html("SUBS");
       }
   });
});​
于 2012-05-29T23:39:47.153 に答える
0

true毎回返されるとは思いません。ロジックがDUBSテキストを削除しないだけですfalse

デモ: http://jsfiddle.net/zbaKE/2/

$("select[id$='go']").change(function() {
    var value = $(this);
    $("select[id$='go']").each(function() {
        if ($(this).val() === value.val()) {
            $('#work').html("DUBS");
        } else {
            $('#work').html("");
        }
    });
});​
于 2012-05-29T23:35:46.490 に答える
0

DUBS テキストは、各変更の前に空に戻されません

あなたのjQueryはこのように簡単に書くことができます

$("select[id$='go']").change(function(){
    $('#work').html('Different');
    if ($("select[id=_go]").val() == $("select[id=_gogo]").val()){
        $('#work').html("Same");
    }
});

これが実際の例です:http://jsfiddle.net/tuC4Y/1/

于 2012-05-29T23:39:30.933 に答える