1

特定の選択値が X の場合、入力フィールドを表示しようとしています。

ユーザーに出席者を追加するかどうかを尋ねるドロップダウンがあります。ユーザーが 1/2 の出席者を選択した場合、関連するドロップダウンを表示します。

関数を書いてみましたが、正しく動作しません。出席者の値を複数回変更すると、入力フィールドが表示されたり消えたりすることがありますか?

私が何を意味するのかを示すためにフィドルを追加しました。

jQuery

/* Attendee Dropdown */
function attendees() {
    // Function 
    if ($('select[name^="add-attend"]').val() == "1") {     
       $('.attend-1').removeClass('nodisplay');
       $('.attend-1').toggle();         
    }
    else if ($('select[name^="add-attend"]').val() == "2") {     
      $('.attend-1').removeClass('nodisplay');
      $('.attend-2').removeClass('nodisplay');
      $('.attend-1').toggle(); 
      $('.attend-2').toggle();           
    }
    else {     
       $('.attend-1').addClass('nodisplay'); 
       $('.attend-2').addClass('nodisplay');           
    }; 
};
$('.add-attend').change(attendees);

フィドル

http://jsfiddle.net/7LxF8/

4

3 に答える 3

1

これはhttp://jsfiddle.net/7LxF8/1/を使用したフィドルの更新です.show()

于 2012-11-21T10:31:53.187 に答える
1
$('.add-attend').on('change', function() {
    var elm1 = $('.attend-1'),
        elm2 = $('.attend-2');
    switch (this.value) {
        case '0':
            elm1.add(elm2).hide();
            break;
        case '1':
            elm1.show();
            elm2.hide();
            break;
        case '2':
            elm1.add(elm2).show();
    }
});​

フィドル

于 2012-11-21T10:34:06.093 に答える
0

li 要素を選択してfilterメソッドを使用できます。

function attendees() {
    $('li[class^="attend"]')
        .hide()
        .filter('[class=attend-' + this.value + ']')
        .show()
};
$('.add-attend').change(attendees);

http://jsfiddle.net/LPRYr/

于 2012-11-21T10:36:07.677 に答える