【问题标题】:jquery global plugin parsing inputsjquery 全局插件解析输入
【发布时间】:2011-04-19 22:29:01
【问题描述】:

我正在尝试使用 jquery 全球化插件来执行此操作,但它在浏览器中失败(客户端脚本错误,indexOf()

var newquantity = $.global.parseFloat(edititem.find('td.edititem-quantity > input'));

我以前是这样使用jquery计算插件的:

var newdiscount = edititem.find('td.edititem-discount > input').parseNumber();

它有效,但我正在更改为 jquery 全球化,因为它有一些 i18n 选项,并且希望只使用这两个插件中的一个,而不是在同一个站点上使用它们。

为什么第一个失败了?

【问题讨论】:

  • $.global.parseFloat 怎么了?

标签: javascript internationalization jquery-globalization


【解决方案1】:

我猜你可能想要:

var newquantity = $.global.parseFloat(edititem.find('td.edititem-quantity > input').val());

获取<input> 元素的值。

edit — 更新:有时值可能为 null:

var newquantity = 
  $.global.parseFloat(edititem.find('td.edititem-quantity > input').val() || '');

查看全球化“parseFloat()”函数的源代码,它对第一个参数(实际上,它必须是字符串,而不是 jQuery 对象)所做的第一件事就是调用“.indexOf()” .如果传入的值为 null,那么您将立即收到错误消息。

【讨论】:

  • 以前有过,没用。错误是: Line: 179 Error: Object does not support property or method 'indexOf' at line 179 if (value.indexOf(culture.numberFormat.currency.symbol) > -1) { inside jquery.global.js..
  • 当值为空时,也许会发生这种情况。我会更新答案。然而,获得价值几乎肯定比没有获得价值要好:-)
  • 最后证明我的代码中还有一些问题阻止了 parseFloat() 工作。在 jquery 对象上使用 val() 可以正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多