我有一个datepicker(本地化为西班牙语):
$(document).ready(function () {
$("#datepicker").datepicker(
{ dateFormat: 'dd/mm/yy',
dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo',
'Junio', 'Julio', 'Agosto', 'Septiembre',
'Octubre', 'Noviembre', 'Diciembre'],
monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr',
'May', 'Jun', 'Jul', 'Ago',
'Sep', 'Oct', 'Nov', 'Dic'],
onSelect: function (dateText, inst) {
var form = $(form);
$.ajax({
url: "/Trabajo/",
type: "POST",
data: { dia: dateText },
success: function (result) {
$('#trabajos').replaceWith($('#trabajos', $(result)));
}
});
return false;
}
});
});
它工作得很好,它用新信息更新#trabajos div但是dom没有更新。我知道.live()是为了那个,但是,如果jquery noobish,我如何更改此代码以实现实时函数?
谢谢。
PS:如果有一个asp.net mvc家伙,如果我的表格如下:@using (Ajax.BeginForm("/Trabajo/", new AjaxOptions { UpdateTargetId = "trabajos" }))
为什么我必须在success func上手动更新它?
答案 0 :(得分:0)
试试这样:
$(document).ready(function () {
attachDatePicker();
});
function attachDatePicker() {
$('#datepicker').datepicker({
dateFormat: 'dd/mm/yy',
dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
onSelect: function (dateText, inst) {
var form = $(form);
$.ajax({
url: '/Trabajo/',
type: "POST",
data: { dia: dateText },
success: function (result) {
$('#trabajos').replaceWith($('#trabajos', $(result)));
// reattach the datepicker if you updated
// the corresponding DOM element
attachDatePicker();
}
});
return false;
}
});
}
备注:永远不要像在AJAX调用的url属性中那样在javascript文件中对url进行硬编码。永远是Url帮助者。所以而不是:
url: '/Trabajo/'
使用:
url: '@Url.Action("Index", "Trabajo")'
^ ^
action controller