0

前のセルの値に基づいてテーブルセルを表示/非表示にします。前のセルにshowelsehideよりも値がある場合。Jqueryは、すべての行についてこれを評価する必要があります。私は今、次のコードを持っています:

    jQuery(document).ready(function() {
    jQuery('input[name^="OS"]').hide();
    jQuery('input[name^="OF"]').on('keyup', function(){ 
        jQuery('table#form_er tr').each(function(){ 
            if(!jQuery('input[name^="OF"]').val()){
                jQuery('input[name^="OS"]').hide();}
            else {jQuery('input[name^="OS"]').show();}
        });
    });
});

その結果、OFがいっぱいになっても、すべてのOSセルが非表示になり、空のOFを埋めると、すべてのOSセルが表示され、OFセルをクリアしても何も変わりません。誰かが私を正しい方向に向けることができますか?ありがとうございました。

4

2 に答える 2

0

コードは正しいと思いますが、$('input [name ^ = "OS"]')。val()が空である可能性があります。

于 2012-10-30T07:48:05.357 に答える
0

jQuery(this)closest('tr')を使用して、現在の行のセルのみをターゲットにしてみてください。

jQuery(document).ready(function() {
    jQuery('input[name^="OS"]').hide();
    jQuery('input[name^="OF"]').on('keyup', function() {
        jQuery('table#form_er tr').each(function() {
            if (jQuery(this).val() != '') {
                jQuery(this).closest('tr').find('input[name^="OS"]').hide();
            }
            else {
                jQuery(this).closest('tr').find('input[name^="OS"]').show();
            }
        });
    });
});​

ターゲットにするセルが次のセルである場合..次に、これも実行できます。

jQuery(this).closest('td').next('td').find('input[name^="OS"]').hide();

編集

に置き換え!jQuery(this).val() ます jQuery(this).val() != ''

于 2012-10-30T07:49:33.547 に答える