目前正在使用jquery处理clone和datepicker。随着我目前的代码克隆发生完美。在克隆div中,datepicker正在工作,但它不像原始工作。
当用户点击添加更多按钮时,它正在使用日期完美地克隆整个div,但如果我从克隆的div 年份和月份下拉列表中选择日期文本字段,则不显示。
当用户点击原始Degree日期中的“添加更多”按钮时,它显示当前日期,但在克隆中未显示。
我试过了我身边的所有可能性我没有得到
我已经尝试为datepicker添加了destroy仍然无法正常工作
这是我的jquery代码
var i = 1;
$(document).on("click", ".edu_add_button", function() {
var i = $('.cloned-row1').length;
$(".cloned-row1:last").clone(true).insertAfter(".cloned-row1:last").attr({
'id': function(_, id) {
return id + i
},
'name': function(_, name) {
return name + i
}
}).end().find('[id]').val('').attr({
'id': function(_, id) {
return id + i
}
});
$(".cloned-row1:last").find(".school_Name").attr('disabled', true).val('');
$(".cloned-row1:last").find(".degree_Description").attr('disabled', true).val('');
$(".cloned-row1:last").find('.datepicker,.datepicker1').removeClass('hasDatepicker').datepicker();
i++;
return false;
});
$("#txt_Degdat").datepicker({
dateFormat: "mm-dd-yy",
changeMonth: true,
changeYear: true,
yearRange: '1900:2100'
}).on('change', function() {
if ($('#txt_Degdat').valid()) {
$('#txt_Degdat').removeClass('errRed');
}
// triggers the validation test on change
}).datepicker("setDate", "0");
$("#txt_Trsdat").datepicker({
dateFormat: "mm-dd-yy",
changeMonth: true,
changeYear: true,
yearRange: '1900:2100'
}).on('change', function() {
if ($('#txt_Trsdat').valid()) {
$('#txt_Trsdat').removeClass('errRed');
}
// triggers the validation test on change
});
$(document).on('click', ".btn_less1", function() {
var len = $('.cloned-row1').length;
if (len > 1) {
$(this).closest(".btn_less1").parent().parent().parent().remove();
}
});
这是HTML代码
<div class="container-fluid cloned-row1">
<div class="row">
<div class="col-xs-6 col-sm-3 col-md-4 col-lg-3">
<label>School Name</label>
<br/>
<select class="slt_Field txt_schName" name="txt_schName[]">
<option value="">Please Select</option>
<option value="Emirates College of Technology- UAE">COL000001</option>
<option value="Al Khawarizmi International College- UAE">COL000002</option>
<option value="Syscoms College">COL000003</option>
<option value="Abounajm Khanj Pre-Uni Center">COL000004</option>
<option value="Advanced Placement">COL000005</option>
<option value="Al Buraimi College (Uni Clge)">COL000006</option>
<option value="Al-Ain Community College">COL000007</option>
<option value="AMA Computer College">COL000008</option>
<option value="Arab Academy for Bankg and Fin">COL000009</option>
<option value="ARABACDSCITECHMARTIMETRNS">COL000010</option>
<option value="Arapahoe Community College">COL000011</option>
</select>
</div>
<div class="col-xs-6 col-sm-3 col-md-4 col-lg-3">
<br>
<input type="text" class="ipt_Field school_Name" name="school_Name[]" disabled/>
</div>
<div class="col-xs-6 col-sm-3 col-md-4 col-lg-3">
<label><span class="text-error">*</span>High School Avg / CGPA</label>
<br/>
<input type="text" class="ipt_Field ipt_Havg" id="" name="ipt_Havg[]" />
</div>
<div class="col-xs-6 col-sm-3 col-md-4 col-lg-3">
<label><span class="text-error">*</span>Grade Type @</label>
<br/>
<select class="slt_Field ipt_grd" name="ipt_grd[]">
<option value="">Please Select</option>
<option value="n">100</option>
<option value="n1">4</option>
<option value="c">CHAR</option>
</select>
</div>
<input type="text" placeholder="MM/DD/YYYY" class="ipt_Field txt_Degdat" name="txt_Fdob" />
</div>
<button class="btn_less1 btn_right ">Less</button>
<button class="btn_more btn_right edu_add_button">Add More</button>
这是编织Link
请问我在这里做错了什么。
我已经尝试了所有可能的任何想法,但
答案 0 :(得分:1)
您不得克隆任何具有分配给它的唯一ID或其子元素的元素。
您是要尝试克隆$("#txt_Degdat")
和$("#txt_Trsdat")
吗?
使用类名作为选择器。
答案 1 :(得分:1)
我想这应该是答案,
$(document).ready(function(){
jQuery.validator.setDefaults({
debug: true,
success: "valid"
});
var form = $( "#myform" );
form.validate();
$(".ipt_Field").on('change', function() {
if ($(this).valid()) {
$(this).removeClass('errRed');
}
// triggers the validation test on change
});
bindDatePicker($("#txt_Degdat"));
});
function bindDatePicker(ele) {
ele.datepicker({
dateFormat: "mm-dd-yy",
changeMonth: true,
changeYear: true,
yearRange: '1900:2100'
}).datepicker("setDate", "0");
}
var rowId = 'rowId';
var count = 1;
$(document).on("click", ".edu_add_button", function() {
//var i = $('.cloned-row1').length;
var that = $(".cloned-row1:first").clone(false);
that.insertAfter(".cloned-row1:last").attr({'id': rowId + count}).end().find('[id]').val('').attr({
'id': function(_, id) {
return id + count
}
});
that.find(".school_Name").attr('disabled', true).val('');
that.find(".degree_Description").attr('disabled', true).val('');
//that.find('.datepicker,.datepicker1').removeClass('hasDatepicker').datepicker();
that.find("#txt_Degdat"+count).removeClass('hasDatepicker');
bindDatePicker(that.find("#txt_Degdat"+count));
count++;
return false;
});
$(document).on('click', ".btn_less1", function() {
var len = $('.cloned-row1').length;
if (len > 1) {
$(this).parent().parent().remove();
}
});
&#13;
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.css" rel="stylesheet"/>
<link rel="stylesheet" href="http://jqueryvalidation.org/files/demo/site-demos.css">
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" integrity="sha256-MfvZlkHCEqatNoGiOXveE8FIwMzZg4W85qfrfIFBfYc= sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script src="http://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script>
<form id="myform">
<div class="container-fluid cloned-row1" id="myRow">
<div class="row well">
<div class="col-xs-6 col-sm-3 col-md-4 col-lg-3">
<label>School Name</label>
<br/>
<select class="slt_Field txt_schName" name="txt_schName[]">
<option value="">Please Select</option>
<option value="Emirates College of Technology- UAE">COL000001</option>
<option value="Al Khawarizmi International College- UAE">COL000002</option>
<option value="Syscoms College">COL000003</option>
<option value="Abounajm Khanj Pre-Uni Center">COL000004</option>
<option value="Advanced Placement">COL000005</option>
<option value="Al Buraimi College (Uni Clge)">COL000006</option>
<option value="Al-Ain Community College">COL000007</option>
<option value="AMA Computer College">COL000008</option>
<option value="Arab Academy for Bankg and Fin">COL000009</option>
<option value="ARABACDSCITECHMARTIMETRNS">COL000010</option>
<option value="Arapahoe Community College">COL000011</option>
</select>
</div>
<div class="col-xs-6 col-sm-3 col-md-4 col-lg-3">
<br>
<input type="text" class="ipt_Field school_Name" name="school_Name[]" disabled/>
</div>
<div class="col-xs-6 col-sm-3 col-md-4 col-lg-3">
<label><span class="text-error">*</span>High School Avg / CGPA</label>
<br/>
<input type="text" class="ipt_Field ipt_Havg" id="" name="ipt_Havg[]" />
</div>
<div class="col-xs-6 col-sm-3 col-md-4 col-lg-3">
<label><span class="text-error">*</span>Grade Type @</label>
<br/>
<select class="slt_Field ipt_grd" name="ipt_grd[]">
<option value="">Please Select</option>
<option value="n">100</option>
<option value="n1">4</option>
<option value="c">CHAR</option>
</select>
</div>
<input type="text" placeholder="MM/DD/YYYY" class="ipt_Field" id="txt_Degdat" name="txt_Fdob" />
<br />
<button class="btn_less1 btn_right ">Less</button>
<button class="btn_more btn_right edu_add_button">Add More</button>
</div>
</div>
</form>
&#13;