0

フォームの一連のフィールドに追加するこの追加スクリプトがあります。追加されたフィールドに基づいて、「ステータス」の値が「実際」の場合にのみ「upg」選択フィールドを表示したいと思います。この条件は追加されたすべてのフィールド セットに適用される必要があるため、status1 が Actual の場合は upg フィールドがありますが、status2 は Ghost であり、upg2 フィールドは非表示にする必要があります。これを行うための最良の方法として何を提案しますか?

    <script type="text/javascript">
    var count = 0;
    $(function(){
    $('a#add_field').click(function(){
    count += 1;

    $('#activation').append(
        '<div class="row-fluid">'                   
        +'<div class="span12" style="border-bottom:1px #dddddd; background-color:#e8e8e8; ">'

                +'<div style="float:left; width:7%;">'
                +'<label>&nbsp;</label>'                    
                +'<select name="status' + count + '" id="status' + count + '"  class="input-small">'
                +'<option value="Ghost">Ghost</option>'
                +'<option value="Actual">Actual</option>'
                +'</select>'
                +'</div>'

                +'<div style="float:left; width: 7%">'
                +'<label>Type</label>'
                +'<select id="upg' + count + '" name="upg' + count + '"  class="input-small" >'
                +'<option value="" selected="&nbsp;" >&nbsp;</option>'
                +'<option value="Exp" >Exp</option>'
                +'<option value="Post" >Post</option>'
                +'<option value="Upgrade" >Upg</option>'
                +'<option value="Retail" >Retail</option>'
                +'</select>'
                +'</div>'
         );     
      });   
});
4

2 に答える 2

0

if($('#status').value == "Actual"){ //追加

于 2012-11-13T05:49:35.280 に答える
0

個人的には、複雑な html のセット (特に何らかのロジックを使用して最終的な dom を決定するもの) を複数の jquery オブジェクトに分割する方が簡単だと思います。インラインで行うのとは対照的に、複数のオブジェクトを一緒に追加する方が時間がかかりますが、明確にする価値がある場合があります。

とにかく、ステータスの最初に選択されたオプションを決定するデータまたは設定が必要であり、その同じ値を使用して、対応するアップグを表示/非表示にすることができます。それを2つの追加に分割し、domに追加する前に非表示にして、upg selectフラッシュが表示されないようにすることをお勧めします。

var some_setting_or_db_val = 'ghost';

var row = $('<div class="row-fluid">'                   
    +'<div class="span12" style="border-bottom:1px #dddddd; background-color:#e8e8e8; ">'

            +'<div style="float:left; width:7%;">'
            +'<label>&nbsp;</label>'                    
            +'<select name="status' + count + '" id="status' + count + '"  class="input-small">'
            +'<option value="Ghost">Ghost</option>'
            +'<option value="Actual">Actual</option>'
            +'</select>'
            +'</div>'

            +'<div style="float:left; width: 7%">'
            +'<label>Type</label>'
            +'<select id="upg' + count + '" name="upg' + count + '"  class="input-small" >'
            +'<option value="" selected="&nbsp;" >&nbsp;</option>'
            +'<option value="Exp" >Exp</option>'
            +'<option value="Post" >Post</option>'
            +'<option value="Upgrade" >Upg</option>'
            +'<option value="Retail" >Retail</option>'
            +'</select>'
            +'</div>');

if(some_setting_or_db_val == 'ghost'){
    row.find("#upg" + count).hide();
}

$('#activation').append(row)
于 2012-11-13T05:51:44.477 に答える