如何在数字插入中使用逗号,以免破坏我的输入字段
How can I use commas in number inserts so it doesn't break my input fields
我已经创建了一个计算表,并且已经 运行 对其进行了一些 A B 测试,我注意到很多人在一个领域中要求 "Total Donors" 会尝试用 "10,000"
来代替10000
.
有没有办法让我可以放入逗号,但在 JS 中却被忽略和未读?因此它向用户显示 10,000
,但我的脚本仍将其读取为 10000
。必须在多个领域完成,是否有全球解决方案?
我对 JS 的了解还不够,无法弄清楚如何开始解决这个问题。我想它必须是某种类型的代码来计算一个字符串值,然后在里面弹出逗号,以便它作为一个数字返回。
我在示例中使用的字段还会根据输入的数字向总数中添加奖励积分。由于各种规模的机构都将使用计算表,因此我们需要添加此字段以使其平衡因此,拥有更多捐助者的大公司可以获得更多积分,因为较小的公司不会因其总分而受到惩罚。
小公司总分:400
适用奖金的公司总分:420
总奖金:
• val < 10001 = + 0
• val >= 10001 and < 25001 = + 10
• val >= 25001 and < 50000 = + 15
• val >= 50000 = + 2
我的输入看起来像这样(为了便于阅读而拆分):
<fieldset class="webform-component-fieldset form-wrapper" id="webform-component-constituent-base">
<legend><span class="fieldset-legend">Constituent Base</span></legend>
<div class="fieldset-wrapper"><div class="form-item webform-component webform-component-textfield" id="webform-component-constituent-base--total-constituents">
<label for="edit-submitted-constituent-base-total-constituents">Total Number of constituents in your database </label>
<input type="text" id="edit-submitted-constituent-base-total-constituents" name="submitted[constituent_base][total_constituents]" value="" size="60" maxlength="128" class="form-text" />
</div>
</div></fieldset>
我对该字段的计算
var donorTotal = jQuery("#edit-submitted-constituent-base-total-constituents").val();
if(donorTotal)
{
donorTotal = parseFloat(donorTotal);
}
else
{
donorTotal = 0;
}
grade += getBonusDonorPoints(donorTotal);
// End total # of donors
积分功能:
function getBonusDonorPoints(val)
{
if(val < 10001)
{
return 0;
}
else if(val >= 10001 && val < 25001)
{
return 10;
}
else if(val >= 25001 && val < 50000)
{
return 15;
}
else if(val >= 50000)
{
return 20;
}
}
感谢你们给我指点和回答的任何帮助!
因此请替换逗号并确保您使用的是数字而不是字符串。
Number(jQuery("#edit-submitted-constituent-base-total-constituents").val().replace(/,/g,""));
我会通过删除任何非数字的内容来解决这个问题。这对 SSN、phone 号码、邮政编码等字段非常有用,并且对这些字段的国际化很有帮助。
function justTheNumbers(s) {
return s.replace(/\D/g, '');
}
我已经创建了一个计算表,并且已经 运行 对其进行了一些 A B 测试,我注意到很多人在一个领域中要求 "Total Donors" 会尝试用 "10,000"
来代替10000
.
有没有办法让我可以放入逗号,但在 JS 中却被忽略和未读?因此它向用户显示 10,000
,但我的脚本仍将其读取为 10000
。必须在多个领域完成,是否有全球解决方案?
我对 JS 的了解还不够,无法弄清楚如何开始解决这个问题。我想它必须是某种类型的代码来计算一个字符串值,然后在里面弹出逗号,以便它作为一个数字返回。
我在示例中使用的字段还会根据输入的数字向总数中添加奖励积分。由于各种规模的机构都将使用计算表,因此我们需要添加此字段以使其平衡因此,拥有更多捐助者的大公司可以获得更多积分,因为较小的公司不会因其总分而受到惩罚。
小公司总分:400
适用奖金的公司总分:420
总奖金:
• val < 10001 = + 0
• val >= 10001 and < 25001 = + 10
• val >= 25001 and < 50000 = + 15
• val >= 50000 = + 2
我的输入看起来像这样(为了便于阅读而拆分):
<fieldset class="webform-component-fieldset form-wrapper" id="webform-component-constituent-base">
<legend><span class="fieldset-legend">Constituent Base</span></legend>
<div class="fieldset-wrapper"><div class="form-item webform-component webform-component-textfield" id="webform-component-constituent-base--total-constituents">
<label for="edit-submitted-constituent-base-total-constituents">Total Number of constituents in your database </label>
<input type="text" id="edit-submitted-constituent-base-total-constituents" name="submitted[constituent_base][total_constituents]" value="" size="60" maxlength="128" class="form-text" />
</div>
</div></fieldset>
我对该字段的计算
var donorTotal = jQuery("#edit-submitted-constituent-base-total-constituents").val();
if(donorTotal)
{
donorTotal = parseFloat(donorTotal);
}
else
{
donorTotal = 0;
}
grade += getBonusDonorPoints(donorTotal);
// End total # of donors
积分功能:
function getBonusDonorPoints(val)
{
if(val < 10001)
{
return 0;
}
else if(val >= 10001 && val < 25001)
{
return 10;
}
else if(val >= 25001 && val < 50000)
{
return 15;
}
else if(val >= 50000)
{
return 20;
}
}
感谢你们给我指点和回答的任何帮助!
因此请替换逗号并确保您使用的是数字而不是字符串。
Number(jQuery("#edit-submitted-constituent-base-total-constituents").val().replace(/,/g,""));
我会通过删除任何非数字的内容来解决这个问题。这对 SSN、phone 号码、邮政编码等字段非常有用,并且对这些字段的国际化很有帮助。
function justTheNumbers(s) {
return s.replace(/\D/g, '');
}