jQuery日期选择器在Firefox和IE的MVC部分视图上进行ajax更新后无法工作
jQuery datepicker not working after ajax update on MVC partial view in Firefox and IE
我有一个MVC视图,它有一个div容器,我通过ajax更新它。
<div id="PartialContainer"></div>
<script type="text/javascript">
$.ajax({
url: '/my/partial_action',
success: function(result) {
$("#PartialContainer").html(result);
}
});
</script>
控制器动作代码:
public ActionResult partial_action()
{
return PartialView("_MyPartial");
}
最后,_MyPartial视图:
<input type="text" class="datepicker" />
<script type="text/javascript">
$(function() {
alert("before");
$("input.datepicker").datepicker();
alert("after");
});
</script>
问题是:这在Chrome中运行良好,我可以很好地显示日期选择器下拉列表,两个警报(之前和之后)都会显示。然而,在FF和IE中,日期选择器不起作用。我确实收到了这两个警报,但没有收到日期选择器的行为。没有firebug/F12脚本错误。
我尝试在部分视图之外添加一个日期选择器输入,它在所有浏览器中都运行良好。
我使用的是jQuery ui 1.7.2,mvc 4。
有人知道为什么会发生这种事吗?
EDIT:所以我解决了这个问题,它不是javascript问题,而是样式问题。我在twitter引导对话框中使用了日期选择器,它涵盖了日期选择器。更改一些z索引为我修复了它。
尝试删除$.ready调用并将其替换为IIFE,因此代码如下:
<input type="text" class="datepicker" />
<script type="text/javascript">
(function() {
alert("before");
$("input.datepicker").datepicker();
alert("after");
})();
</script>
编辑:我现在已经检查过了,这两种情况在FF 13、IE 9、Opera 12和Safari 5中都能正常工作。然而IE似乎缓存了结果,这可能是问题所在。尝试在你的url中添加一些随机参数,或者在基页中设置cache: false
(默认为true
)到ajax调用
<div id="PartialContainer"></div>
<script type="text/javascript">
$.ajax({
url: '/my/partial_action',
cache: false,
success: function(result) {
$("#PartialContainer").html(result);
}
});
</script>
我在Bootstrap Datepicker v1.8.0中遇到了类似的行为。日期选择器在分部视图的初始显示中按预期工作,但如果使用Ajax调用使用新数据刷新分部,则日期选择器无法响应。
通过在Ajax中成功地在重新加载部分视图后将文本字段重新绑定到日期选择器,解决了这个问题。
function editApplicant(id) {
var dataRow = {
'applicant' : id
};
$.ajax({
type: 'POST',
url: "/Cases/GetApplicant",
data: dataRow,
success: function (data) {
$('#applicantDetail').html(data);
/* Rebind the date of birth field to a datepicker */
$('#DOBString').datepicker({
format: 'dd/mm/yyyy',
autoclose: true,
orientation: 'bottom left'
});
showApplicantView();
},
error: function (data) {
showApplicantView();
}
});
}
相关文章:
- Ajax更新面板随机错误'PRM_MissingPanel'
- AJAX更新面板不;t工作.请帮我找出我错在哪里.
- Ajax更新表数据,但不重复顺序
- 通过javascript确认AJAX更新数据库
- 使用AJAX更新Shopify中的购物车编号
- 为什么在ASP.NET Ajax更新面板中执行任何操作后javascript元素都停止工作
- 创建使用 ajax 更新 iframe 的链接
- 谷歌图表错误'不是数组'关于Ajax更新
- GoogleMapsForRails-只有在搜索结果发生变化时才通过ajax更新标记
- ajax更新后jQuery列表刷新
- 使用PHP和AJAX更新select下拉选项
- 可以使用ajax更新页面
- 表单在每个页面中 - 仅在特定页面上处理它 - 如果当前不在页面上 - 重定向 - 否则 - 使用 AJAX 更新数据
- 使用jquery ajax更新数据库;不起作用
- JSF在Ajax更新后调用javascript函数
- 通过ajax更新HTML块内容
- jQuery日期选择器在Firefox和IE的MVC部分视图上进行ajax更新后无法工作
- 在第三次onPageClick事件后,使用twbspagination插件和AJAX更新JS分页
- 使用AJAX更新MySQL数据库
- 使用javascript将span更改为input(viceversa),然后AJAX更新输入