0

次のようなdiv構造を含むフォームがあります。

<form id="baseform">
    <div class="container">
     <div class="subheader"><h2>Section 1</h2></div>
     <div class="row">
        <textarea id=T_01></textarea>  
        <input id="T_02" type="text" />
     </div>
     <div class="row">
        [more form fields]
     </div>
    </div>
    <div class="container">
     <div class="subheader"><h2>Section 2</h2></div>        
       <div class="row">[more form field, etc.]
     </div>
   </form>

.rowonの下に空のフォーム入力divがあるものを非表示にしたい(私はすでに.subheaderonの下にdivを表示するために使用しています)。document readytoggle().row.subheaderclick

このようなものが機能するようです:

$(document).ready(function() {
    $('.row :input[@value=""]').parent('.subheader').nextAll('.row').hide();
});

しかし、サイコロはありません。アイデア?

4

3 に答える 3

0

これはほとんどのフォーム入力で機能しますが、値が設定されているチェックボックスとラジオには他の条件付きロジックが必要になる場合があります。かどうかを確認する必要があります:checked

$('.subheader .row :input').each( function() {
   if ( !$(this).val().length )
      $(this).parent('.row').hide();
});

編集:input-セレクターで を見逃しました。

編集 2 - 実際の行を隠していませんでした。フォーム フィールドのみを隠していました。

于 2012-04-20T22:50:43.393 に答える
0

これを試して:

$(function () {
    $(".row :input[value='']").hide();
});
于 2012-04-20T22:56:54.290 に答える
0
$('.row input').filter(function() {
    return this.value.length ? this : null;
}).parent().hide();​
于 2012-04-20T22:58:39.433 に答える