我一直在尝试使用 SelectBoxIt Jquery 插件,但是动态创建的选择框的显示和禁用属性存在问题。简而言之,如果原来的选择框有一个“display:none”的css属性,SelectBoxIt仍然会显示它。我通过在隐藏的容器 div 中插入选择框来解决这个问题。但是,当显示容器 div 时,selectboxit 会正确显示,但现在已禁用。你们对如何解决这个问题有任何线索吗?
HTML 代码:
<div>
<select name="sel" id="sel">
<option value="0">Select this</option>
<option value="1">Select that</option>
</select>
</div>
<div id="seladd_xx" style="display:none">
<select name="seladd[]" id="sel_xx">
<option value="0">Select this now</option>
<option value="1">Select that now</option>
</select>
</div>
<button type="button" id="addbtn_unit" class="addmore" style="font-weight: bold;font-size:11px">Add More</button>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.selectboxit/3.2.0/jquery.selectBoxIt.min.js"> </script>
查询代码:
<script type="text/javascript">
$(document).ready(function(){
$("select").selectBoxIt();
id=0;
$('.addmore').click(function(){
newUnit($('#seladd_xx'));
})
function newUnit(element) {
var newElement = element.clone(true);
if(id <10)id = "0"+id;
newElement.attr("id",element.attr("id").split("_")[0]+"_"+id);
$('select', newElement).each(function() {
var yyid = $(this).attr("id").split("_")[0] + '_' + id;
$(this).attr('id', yyid);
});
$('#seladd_xx').before(newElement);
newElement.show('fast');
id++;
}
})
</script>