进行这种操作案例的最佳方法是什么:
当使用组合框的触发器为change时,我想更改之前添加到表单中的 textField 的类型。
我的样本数据收集:
function DataProvide(){
selectValues = {
"choose" : "-Choose-",
"id" : "ID",
"emp_name" : "Employee Name",
"photo_path" : "Photo Path",
"emp_id" : "Employee ID",
"start_date" : "Start Date",
"birth_date" : "Birth Date"
};
$.each(selectValues, function(key, value) {
$('#data1_1')
.append($("<option></option>")
.attr("value",key)
.text(value));
});
}
$(document).ready(function() {
DataProvide();
});
数据已显示在组合框中。
然后我使用$.append()向表单添加一个字段
var count = 1;
$(".addCF").click(function(){
count += 1;
var $row = $('<tr>'
+ '<td>' + '</td>'
+ '<td>' + '<input id="data2_' + count + '" type="text" name="data2[]" class="data2" value="" placeholder=""/>' + '</td>'
+ '<td>' + '<input id="data3_' + count + '" type="text" name="data3[]" class="data3" value="" placeholder=""/>' + '</td>'
+ '<td>' + '<a href="javascript:void(0);" class="remCF">Remove</a>' + '</td>'
+ '</tr>').appendTo("#customFields");
$row.find('td:first').append($('#data1_1').clone())
});
$("#customFields").on('click','.remCF',function(){
$(this).parent().parent().remove();
count -= 1;
});
直到现在,我已经如我所愿地成功了。
但我想对第 3 列做一个小改动。当我选择例如“ start_date ”触发(组合框)时如何操作此表单的最佳方式然后该字段将更改为使用我添加jQuery UI 以显示日期选项的类“ onlyDate ”。
我补充说:
$(".onlyDate").datepicker({
dateFormat: "dd-mm-yy"
});
然后检查组合的值 $("#customFields").on('change', '.tabelBaru', function() {
if(nilai=='gender'){
$this.closest("tr").find(".data3").replaceWith(
'<select name="data3[]" class="data3">'
+ '<option value="man" selected >Man</option>'
+ '<option value="woman">Woman</option>'
+ '</select>'
)
}else if(nilai=='start_date'){
$this.closest("tr").find(".data3").replaceWith(
'<input type="text" name="data3[]" value="" class="onlyDate"/>'
)
}
};
但是 jQueryUI datepicker并没有像往常一样出现。但是如果正常的表格(不使用$.append)都运行正常。
我如何解决它?