Javascript 触发器值更改时的DOM操作
进行此类操纵的最佳方法是什么: 当使用组合框的触发器为change时,我想更改以前添加到表单中的文本字段的类型 我的样本数据收集:Javascript 触发器值更改时的DOM操作,javascript,jquery,html,jquery-ui,jquery-events,Javascript,Jquery,Html,Jquery Ui,Jquery Events,进行此类操纵的最佳方法是什么: 当使用组合框的触发器为change时,我想更改以前添加到表单中的文本字段的类型 我的样本数据收集: function DataProvide(){ selectValues = { "choose" : "-Choose-", "id" : "ID", "emp_name" : "Employee Name", "photo_path" :
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();
});
然后检查组合的值
$(“#customFields”).on('change','tabelBaru',function(){
if(nilai=='gender'){
$this.closest(“tr”).find(“.data3”).replaceWith(
''
+“男人”
+“女人”
+ ''
)
}else if(nilai==“开始日期”){
$this.closest(“tr”).find(“.data3”).replaceWith(
''
)
}
};
但是jQueryUI日期选择器不会像往常一样出现。但是如果正常表单(不使用$.append)都正常运行
我怎么修理它
$(".onlyDate").datepicker({
dateFormat: "dd-mm-yy"
});
当执行此代码时,它将只找到当前语句的对象,该对象的类名为onlyDate
在此之后,页面上任何类名为onlyDate append的对象都不会执行日期拾取代码
也许您应该尝试jquery函数“delegate”或在每次追加后执行日期选择器代码。我使用$(“table”)。在(“click”、“.onlyDate”,function(){$(this).datepicker({dateFormat:“dd-mm-yy”});});但每次我在最近第二次更改组合框时都会出现这种情况。我的意思是如果我选择组合框“start\u-date”DateTime不起作用,但如果我选择另一个组合,则会成功显示DatePicker。我遗漏了什么?这是因为该代码将绑定.onlyDate对象上的单击事件。因此,当您第一次完成单击项目时,它最终成为您想要的日期选择器。(在第一次单击之前,它仍然只是一个普通的输入:文本对象)
$(".onlyDate").datepicker({
dateFormat: "dd-mm-yy"
});
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"/>'
)
}
};
$(".onlyDate").datepicker({
dateFormat: "dd-mm-yy"
});