-1

JSFIDDLE

デモをご覧ください。<select>スパンの内側にあるものに影響を与えないのはなぜですか?(または、どうすればそのように機能させることができますか?)

4

4 に答える 4

0
$('.test').bind("propertychange keyup input paste", function(event){
    if ($(this).val() != '') {
        $(this).prevAll().find('select').attr('disabled', true);
    } else {
        $(this).prevAll().find('select').attr('disabled', false);
    }
});

デモ

于 2012-09-17T05:45:37.933 に答える
0

あなたの最初selectはスパンにあり、2番目はそうではありませんspan..私はそれがタイプミスだと思います。

答えは、2番目selectもスパンにあることを前提としています

$('.test').bind("propertychange keyup input paste", function(event){
    if ($(this).val() != '') {
        $(this).prev().find('select').attr('disabled', true);
    } else {
        $(this).prev().find('select').attr('disabled', false);
    }
});
于 2012-09-17T05:46:45.137 に答える
0

これは、最初のケースではprevAllが前の兄弟を返すためです。この場合、無効にされていないがselect要素ではないspan要素です。したがって、select要素は無効になりません。2番目のケースでは、select要素が選択されて無効になっています。最初のケースで機能するには、span要素でselectを見つける必要があります。

$(this).prevAll().find('select').attr('disabled', true);
于 2012-09-17T05:47:02.353 に答える
0

これは、prevAllが「兄弟」を選択し、「select」がその兄弟ではなく、「span」が選択するためです。したがって、「thecodeparadox」が提案したものを使用できます。

于 2012-09-17T05:47:11.953 に答える