为啥当我点击更新按钮时出现错误TypeError: r is undefined?

Posted

技术标签:

【中文标题】为啥当我点击更新按钮时出现错误TypeError: r is undefined?【英文标题】:Why when I click on the update button error TypeError: r is undefined happen?为什么当我点击更新按钮时出现错误TypeError: r is undefined? 【发布时间】:2013-08-13 22:50:44 【问题描述】:

firefox浏览器报错如下:TypeError: r is undefined

这是 chrome 浏览器: 未捕获的类型错误:无法读取未定义的属性“数据”

我还制作了一个视频以便更好地理解。

当我更改某个字段中的值时出现错误

jsfiddle code

youtube video

按钮代码更新

      save: function (e) 
            var that = this;
            $.ajax(

                url: '/api/apdevice',
                type: e.model.id == null ? 'POST' : 'PUT',
                contentType: 'application/json',
                data: JSON.stringify(e.model),
                success: function (data) 
                    alert('yes');
                    that.refresh();
                ,

                error: function (data) 
                    alert('no');
                    that.cancelRow();
                

            );
        

【问题讨论】:

很遗憾,我无法观看您的视频,但在加载 Fiddle 时,Chrome 中出现以下错误:端口:无法建立连接。接收端不存在。 [VM] lastError (856):29 Uncaught TypeError: Cannot call method 'extend' of undefined 现在你可以看到视频了 您的 JSFiddle 在 chrome 和 firefox 中不会对我产生错误。适合你吗? 我已经测试了其他几台计算机,当您单击按钮时出现错误编辑更改量打开弹出窗口,然后单击更新按钮。也可以测试jsfiddle.net/mSRUe/19/embedded/result 哦,看来我实际上需要更改字段数据才能看到错误。 【参考方案1】:

这是因为您的数据源的更新方法正在被调用。它尚未设置为您提供TypeError

你可以做两件事之一。

    设置数据源的更新方法以包含保存函数中包含的逻辑。您需要将更新设置为一个函数,以便能够动态控制该方法(POST/PUT)。此时您应该从保存事件中删除 ajax 代码。 将更新方法设置为虚拟函数,并将其作为保存事件的一部分进行处理。

这是方法 #2 的示例。

var dataSource = new kendo.data.DataSource(
  ..
  update: function(e)  return true; 
  ..
);

保持保存事件功能不变。

请注意,我收到了 Uncaught SyntaxError: Unexpected number 错误。我相信这是源自LastClientsCount 属性。

小提琴:http://jsfiddle.net/mSRUe/23/

【讨论】:

谢谢你的回答,你能在jsfiddle中举个例子吗? 我在 Firefox 浏览器中收到此错误:SyntaxError: missing ;在 d.0=value 之前和错误 chrome 浏览器中:未捕获 SyntaxError:意外数字,我还添加了代码“LastClientsCount”也仍然给出错误。jsfiddle.net/psot98/mSRUe/24 是的,就像我说的那样,存在那个错误,但这是一个不同的问题。也许写一篇新文章或调试该属性/减少你的代码。 @objectjson 我看到你发了一个新帖子。这个满足你的要求吗?赞成和/或接受? 我不接受我自己不能投票的问题,但我有对其他人很重要的问题,我的问题已被评分。无论如何,我很抱歉

以上是关于为啥当我点击更新按钮时出现错误TypeError: r is undefined?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在尝试更新数据库时出现语法错误?

为啥在尝试从 api 获取数据时出现此错误“TypeError:字符串索引必须是整数”?

为啥 Xamarin 会在单击按钮时出现错误?

为啥我在使用 jquery 数据表时出现这种类型的错误“TypeError:oColumn is undefined”,我从它的文档中全部遵循

按下更新按钮时出现错误

为啥我在防锈闭合时出现终身错误