到目前为止,这是我的代码:
$('body').on('change', '.dropdown', function() {
$.ajax({
success: function(res) {
if(res.success == true) {
return elements with class .hasdatepicker
getdatepicker('.hasdatepicker');
}
}
});
});
function getdatepicker(elem) {
$(elem).each(function(){
var currentYear = (new Date).getFullYear();
var objdate = $(this);
$(this).datepicker({
changeMonth: true,
changeYear: true,
yearRange: '1950:currentYear',
onChangeMonthYear: function(year, month, inst) {
objdate.val(month+'/'+inst.selectedDay+'/'+year);
}
});
$(this).attr("readonly","true");
});
}
我知道它会转到getdatepicker
,因为它会将readonly
属性添加到元素中。
感谢您的帮助!
编辑:我真的很抱歉这个混乱。我更新了我的答案。我的函数getdatepicker
实际上在success
调用中。
答案 0 :(得分:1)
您应该将getDatePicker()放在ajax调用的success函数中。 您现在调用它的方式是在运行success方法之前: 示例:
HTML:
<div id='test'>test</div>
JS:
$(document).on('click', '#test', function() {
$.ajax({
success: function() {
$("#test").addClass('hasdatepicker')
getdatepicker($('.hasdatepicker')); //SUCCESS
}
});
getdatepicker($('.hasdatepicker')); //FAIL
});
function getdatepicker(elem) {
elem.html('success');
}
答案 1 :(得分:1)
你需要在ajax回调中调用你的函数,因为当getdatepicker
运行ajax.success
尚未运行时,因为ajax.success
是异步的。
$('body').on('change', '.dropdown', function() {
$.ajax({
success: function () {
//return elements with class .hasdatepicker ;
getdatepicker('.hasdatepicker');}
});
});