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 的 html)分解为多个 jquery 对象更容易。虽然将多个对象附加在一起的速度较慢,但​​与内联相比,有时它值得清晰。

无论如何,您需要一些数据或设置来确定初始选择的状态选项,并且您可以使用相同的值来显示/隐藏相应的 upg。我建议你把它分成两个附加,在将它附加到 dom 之前隐藏它,这样你就看不到 upg select flash:

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 回答