在javascript中使用clone复制div

时间:2015-04-06 11:08:47

标签: javascript php jquery ajax codeigniter

在我的网络应用程序中,我有一个选择框和两个分组在div中的文本框。将使用ajax基于选择框选择填充2个文本框中的值。现在我的任务是在单击按钮时复制整个div。我通过使用jquery clone方法完成了这个。它的工作正常。但是当我尝试在重复的div中选择一个选项时,选择发生在父div本身上。我不知道哪里出错了。谁能帮帮我吗。此外,我还需要在重复的div中的选择框中处理ajax调用。 这是我到目前为止所做的代码。

视图:

    <div class="row" id="addparts">
<div class="form-group"  >
<div class="col-md-4">
<h3>Job Description<span class="required" style="color:red;">*</span></h3>

<select name="complainttype[]" id="country_list2" class="form-control" onChange="getjobdata(this.value)">
<option selected select disabled>Select</option>
<?php
foreach($complaints as $com)
{
?>
<option value="<?php echo $com->id;?>"><?php echo $com->type;?></option>
<?php
}

?>
</select>
</div>

<div class="col-md-4">
<h3>Remarks<span class="required" style="color:red;">*</span></h3>
<input type="text" name="remarks[]" id="remarks" class="form-control">
</div>

<div class="col-md-4">
<h3>Work Hours<span class="required" style="color:red;">*</span></h3>
<input type="text" name="work_hours[]" id="work_hours" class="form-control">
</div>
&nbsp;&nbsp;&nbsp;          
</div>
</div>

脚本:

<script>
jQuery(document).ready(function() {       

var item = $("#addparts");
var before = $('#div_button');
$('#addMore').on('click', function() {
var clone = item.clone(true);
clone.attr('id', '');
clone.attr('class', 'duplicate');
before.before(clone);
});
});

// ajax函数来填充文本框

function getjobdata(val)
{
$.ajax({
type: "get",
url: "<?php echo $this->config->base_url(); ?>index.php/test/ajaxgetjobdata",
data: {id: val},
cache:false,
success: function(data) {
//alert(data);
var obj = jQuery.parseJSON(data);
var remarks=obj.remarks;
var work_hours=obj.work_hrs;
//var model=obj.model;
document.getElementById("remarks").value = remarks;
document.getElementById("work_hours").value = work_hours;
},
error: function() {
alert("error");
}

});
}

</script>

1 个答案:

答案 0 :(得分:0)

请尝试这样, 我已将此行var item = $("#addparts");更改为var item = $("#country_list2");          jQuery(document).ready(function(){

var item = $("#country_list2");
var before = $('#div_button');
$('#addMore').on('click', function() {
    alert("test");
var clone = item.clone(true);
clone.attr('id', '');
clone.attr('class', 'duplicate');
before.before(clone);
});
});
</script>