我正在使用 scriptaculous 库。但是,我在为原型库包含 JSON 库时遇到了一些问题。它自动向所有对象添加了 toJSONSTring 和 parseJSONSTRING 方法,坦率地说,这在某些地方造成了严重破坏。就像我似乎无法使用 Ajax Updater 函数,我怀疑它是因为这个 toJSONSTring 方法已附加到我传递给它的选项对象。
无论如何要取消设置或至少以某种方式删除已添加到对象中的功能。
编辑:::
实际上,我正在尝试发出 ajax 请求,但在
Ajax.Updater = Class.create(Ajax.Request,....
原型库的一部分。在它应该执行和发布 AJAX 请求的部分它不会 - 特别是在:
$super(url, options);
准确地说,我在这个 url 使用这个可排序和可编辑的表格网格:http: //cloud.millstream.com.au/millstream.com.au/upload/code/tablekit/index.html
基本上,您可以在表格单元格上单击以对其进行编辑,然后按 OK 按钮进行确认。单击按钮后,将发出 ajax 请求。
表的可编辑特性在提交函数中调用 Ajax 更新程序,如下所示:
submit : function(cell, form) {
var op = this.options;
form = form ? form : cell.down('form');
var head = $(TableKit.getHeaderCells(null, cell)[TableKit.getCellIndex(cell)]);
var row = cell.up('tr');
var table = cell.up('table');
var ss = '&row=' + (TableKit.getRowIndex(row)+1) + '&cell=' + (TableKit.getCellIndex(cell)+1) + '&id=' + row.id + '&field=' + head.id + '&' + Form.serialize(form);
this.ajax = new Ajax.Updater(cell, op.ajaxURI || TableKit.option('editAjaxURI', table.id)[0], Object.extend(op.ajaxOptions || TableKit.option('editAjaxOptions', table.id)[0], {
postBody : ss,
onComplete : function() {
var data = TableKit.getCellData(cell);
data.active = false;
data.refresh = true; // mark cell cache for refreshing, in case cell contents has changed and sorting is applied
}
}));
},
问题是从未提出请求,我一直按 OK 按钮无济于事。
编辑::::::::::::::::
我仍然被难住了——我什至尝试过自己调用 Ajax.Updater 函数,但它根本不起作用。好像这个功能一下子就被官方渲染为无用了。我已经进行了您所说的更改,但都无济于事:(坦率地说,我在这里没有选择余地-另一个想法是放弃此 tablekit 并寻找具有类似功能的其他东西,希望这可能会起作用!