首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象在charAt插件中没有“charAt”方法。

对象在charAt插件中没有“charAt”方法。
EN

Stack Overflow用户
提问于 2013-09-25 18:58:26
回答 3查看 343关注 0票数 1

我正在尝试使用autoNumeric jQuery插件,它有助于jQuery中各种货币的转换。

当我在jsFiddle实例中使用它时,插件本身就能工作。

代码语言:javascript
复制
$(function () {
    $('.money').autoNumeric('init', {
        aSign: '$',
        vMin: '-999999999.99',
        nBracket: '(,)'
    });
});

但是,一旦我将它集成到一个大型遗留项目中,我就开始在第194行收到上面的错误。我知道为什么我会收到错误--没有将字符串传递到negativeBracket函数(negativeBracket(s, nBracket, oEvent)是签名)。相反,它似乎是一个jQuery对象-- e.fn.init1。我搞不懂这是怎么回事。我知道社会人士可能无法作出直接的回应,但我希望(并会接受)被指引往正确的方向,因为到目前为止,我并没有跳出来。

更新

因此,有一些额外的信息,可能会有帮助。它仍然让我困惑于它是如何发生的(不幸的是,下面的答案无助于提供任何额外的洞察力)。当我在autoNumeric中链接时,我用类money将它从任何文本字段中键入。当我在盒子里打字时,它确实起作用了。我能看到格式。然而,当我在一个新的框中选项卡时,我刚刚输入的框在以相同的错误在autoNumeric中命中第152行后完全清除。

@Carlos487 487在他的回答中是正确的,他说我有一个不是字符串的对象。相反,我有一个物体,我相信,它是一个函数。下面是我在Chrome调试器工具中看到的情况:

代码语言:javascript
复制
e.fn.init[1]

> 0: input#price.money required
> context: input#price.money required
 length: 1
 selector: ""
> __proto__: Object[0]

“箭”项目可以进一步扩展。我不知道这是否提供了更多的线索,但至少有点不同。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-02 18:35:41

事实证明,这个问题是一个无数的问题,使我看到的错误更加复杂。正在发生的几件事:

  1. 验证器插件将jQuery对象包装在自己的结构中(因此出现了charAt问题)。
  2. 修复后,我还了解到一些本地代码也在将数据删除并重写到字段中,以提供格式化(这也是autoNumeric正在做的事情),因此autoNumeric会删除它,因为它将获得一个空值并尝试格式化它。

还有其他一些随机的疯狂,也需要清理。So...issue解决了!还有更多工作要做,但至少这个障碍已经过去了。谢谢大家的帮助。

票数 0
EN

Stack Overflow用户

发布于 2013-09-25 21:30:26

错误就像

对象中无方法XXXXX

之所以生成,是因为您试图调用obj.XXXX(),而obj不是所需的类型,在您的特殊情况下是一个字符串

你试过在另一个浏览器,因为旧或IE可能有点麻烦。我将使用chrome developer工具与您的遗留应用程序进行推荐,以查看是否有其他冲突或产生错误。

票数 0
EN

Stack Overflow用户

发布于 2013-09-26 03:54:19

我打赌你用的是第二个库,它干扰了jQuery。它可能已经用自己的函数重写了$

尝试使用jQuery而不是$

代码语言:javascript
复制
jQuery(function () {
    jQuery('.money').autoNumeric('init', {
        aSign: '$',
        vMin: '-999999999.99',
        nBracket: '(,)'
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19013023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档