我正在尝试使用autoNumeric jQuery 插件,它有助于在 jQuery 中转换各种货币。
当我在jsFiddle 示例中使用该插件时,它本身就可以工作。
$(function () {
$('.money').autoNumeric('init', {
aSign: '$',
vMin: '-999999999.99',
nBracket: '(,)'
});
});
但是,一旦我将它集成到一个大的遗留项目中,我就开始在第 194 行收到上述错误。我知道为什么我会收到错误 - 没有将字符串传递给negativeBracket 函数(negativeBracket(s, nBracket, oEvent)
是签名) . 相反,它似乎是一个 jQuery 对象 - e.fn.init 1。我很困惑这可能是如何发生的。我意识到社区可能无法给出直接的答案,但我希望(并且会接受作为答案)被指出正确的方向,因为到目前为止没有任何事情发生在我身上。
更新
所以,有一些额外的信息可能会有所帮助。它仍然让我难以理解它是如何发生的(不幸的是,下面的答案无助于提供任何额外的见解)。当我在 autoNumeric 中链接时,我将它从任何带有类钱的文本字段中关闭。当我在框中键入时,它确实有效。我可以看到格式。但是,当我进入一个新框时,我刚刚输入完的框会在 autoNumeric 中的第 152 行出现同样的错误后完全清除。
当@Carlos487 说我有一个不是字符串的对象时,他的回答是正确的。相反,我有一个对象,我相信它是一个函数。这是我在 Chrome 调试器工具中看到的内容:
e.fn.init[1]
> 0: input#price.money required
> context: input#price.money required
length: 1
selector: ""
> __proto__: Object[0]
“箭头”项目可以进一步展开。我不知道这是否提供了更多线索,但至少有点不同。