- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个页面显示数据库中的可用日期。它运行良好,但我必须刷新页面才能使其正常工作。如果不这样做,则日期选择器类就像一个文本框。另外,我需要它在显示之前进行 ajax 调用。
总而言之,我转到“/tasks/new”。页面加载正确。我单击日期选择器字段,但没有日历。控制台中没有错误。我刷新页面,它就可以工作了。我需要做什么?我最初的想法是它需要等待页面加载,但这似乎不起作用(除非我做错了)。
相关代码如下:
html
<input class="datepicker" id="task_start_date" name="task[start_date]" type="text">
tasks.js.coffee
full_days =[]
partial_days=[]
getDays = (date) ->
mmddyyyy = ("0" + (date.getMonth() + 1)).slice(-2) + "-" + ("0" + date.getDate()).slice(-2) + "-" + date.getFullYear()
jqxhr = $.get("/getdates/"+mmddyyyy, (data) ->
full_days = data['full']
partial_days = data['partial']
formatDays
return
)
formatDays = (date) ->
mmddyyyy = ("0" + (date.getMonth() + 1)).slice(-2) + "-" + ("0" + date.getDate()).slice(-2) + "-" + date.getFullYear()
if $.inArray(mmddyyyy, full_days) isnt -1
[
true
"full-day"
"Available"
]
else
if $.inArray(mmddyyyy, partial_days) isnt -1
[
true
"partial-day"
"Available"
]
else
[
false
""
"unAvailable"
]
# manipulate the json to make an array
availableHours = (day) ->
hours =[]
for index, hour_obj of day
hours.push hour_obj['hour']
return hours
$ ->
$('.datepicker').datepicker(
dateFormat: 'mm-dd-yy'
beforeShow: -> getDays
beforeShowDay: formatDays
onChangeMonthYear: (year, month, inst) ->
target = "#{month}-01-#{year}"
jqxhr = $.get("/getdates/"+target, (data) ->
full_days = data['full']
partial_days = data['partial']
formatDays
return
)
onSelect: (selectedDay) ->
box_id = $(this).attr('id')
box_id = "\##{(box_id.split '_')[1]}_hour"
new_list_items =[]
jqxhr2 = $.get('/gethours/'+selectedDay, (data)->
hours = availableHours(data)
for k,hour of hours
new_list_items.push '<option>'+hour+'</option>'
$(box_id).html('').append(new_list_items)
)
)
最佳答案
我找到了解决问题的方法。这一切都与我何时调用函数以及何时输入初始 $ ->
:
$ ->
full_days = []
partial_days = []
getDays = (date) ->
if (typeof date != 'string')
date = new Date()
date = ("0" + (date.getMonth() + 1)).slice(-2) + "-" + ("0" + date.getDate()).slice(-2) + "-" + date.getFullYear()
jqxhr = $.get("/getdates/" + date, (data) ->
full_days = data['full']
partial_days = data['partial']
formatDays
)
return
getDays()
formatDays = (date) ->
mmddyyyy = ("0" + (date.getMonth() + 1)).slice(-2) + "-" + ("0" + date.getDate()).slice(-2) + "-" + date.getFullYear()
if $.inArray(mmddyyyy, full_days) isnt -1
[
true
"full-day"
"Available"
]
else
if $.inArray(mmddyyyy, partial_days) isnt -1
[
true
"partial-day"
"Available"
]
else
[
false
""
"unAvailable"
]
# manipulate the json to make an array
availableHours = (day) ->
hours = []
for index, hour_obj of day
hours.push hour_obj['hour']
return hours
showdatepicker = ->
$('.datepicker').datepicker(
dateFormat: 'mm-dd-yy'
beforeShowDay: formatDays
onChangeMonthYear: (year, month, inst)->
target = "#{month}-01-#{year}"
getDays target
onSelect: (selectedDay) ->
getDays()
box_id = $(this).attr('id')
box_id = "\##{(box_id.split '_')[1]}_hour"
new_list_items = []
jqxhr2 = $.get('/gethours/' + selectedDay, (data)->
hours = availableHours(data)
for k,hour of hours
new_list_items.push '<option>' + hour + '</option>'
$(box_id).html('').append(new_list_items)
)
)
showdatepicker()
关于javascript - Datepicker ajax 调用 beforeShow;不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24516936/
这是 JS fiddle : http://jsfiddle.net/UEnqL/ $("#datepicker").datepicker({ dateFormat: 'dd/mm/yy', befo
我正在尝试使用此函数在所选日期元素上添加一个类: beforeShow:function(){ $(".ui-datepicker-current-day").addClass('testX') }
我正在尝试实现一个帮助层,可以通过单击页面标题中的帮助链接来打开和关闭该帮助层。 我知道 qTip 无法在不执行一些主体悬停技巧或类似操作的情况下定位 live() 选择器,因此我认为最简单的方法是使
我有以下代码,它可以在附加到输入的日期选择器上正常工作,但与内联日期选择器一起使用时不会运行 beforeshow 和 beforeshowday 部分。 我能做些什么来解决这个问题? $('.myd
extjs 组件的beforeshow 和aferrender 事件有什么区别。 我还可以引用任何描述 extjs 事件触发顺序的文档(或描述在组件显示在屏幕上之前发生的步骤)? 最佳答案 befor
我有一个页面显示数据库中的可用日期。它运行良好,但我必须刷新页面才能使其正常工作。如果不这样做,则日期选择器类就像一个文本框。另外,我需要它在显示之前进行 ajax 调用。 总而言之,我转到“/tas
如何扩展 jQuery Datepicker 的“beforeShow”功能? 我在尝试: (function ($) { var old = $.fn.datepicker.beforeSh
无论我如何尝试,我都无法在我的日期选择器上触发 beforeShow 事件。这是我的代码: $('#calendar').datepicker({ inline: true, dateFormat:
我想做这样的事情: var showme = false; $('#mydatepicker').datepicker({ beforeShow: function(input, inst)
我试图覆盖 beforeShow block 中的 this.href 但它不起作用。this.href 的旧值被使用,即使它被覆盖。 代码是: beforeShow: function (opts,
如何将此选项设置为我的 sj:datepicker日期选择器 $('input.date').datepicker({ beforeShow: function(input,
我是一名优秀的程序员,十分优秀!