浮点输入,要显示逗号,而不是点

时间:2020-05-13 08:44:18

标签: javascript reactjs

我想知道使用parseFloat和inputmasked时是否可以显示逗号而不是点。我有两个输入字段,其中一个获取另一个的值,但是当我在第一个输入数字时,第二个输入字段看不到我猜的逗号。看起来像这样:

First inputfield

Second inputfield

在我的遮罩中,我将十进制符号设置为逗号,但是如您所见,第二个输入字段将其忽略。我认为这是因为该数字被解析为浮动的。而且由于之后需要进行一些计算,因此它必须是浮动的。有人知道第二个输入字段是否可能显示逗号吗?

以下是一些代码:

const floatParser = parserFunc => (value) => {
  const nr = parseFloat(parserFunc(value));
  if (Number.isNaN(nr)) return undefined;
  return nr;
};

export const parsePercentage = floatParser(stripPercentageMaskedValue);

export const percentageMask = createNumberMask({
  allowNegative: true,
  allowDecimal: true,
  decimalSymbol: ',',
  prefix: '',
  suffix: PERCENTAGE_SUFFIX,
});

从另一个文件:

        <InputMasked
          aria-label={formatMessage(GeneralMessages.salaryChange)}
          label={formatMessage(GeneralMessages.salaryChange)}
          placeholder="%"
          on_change={({ value }) => {
            handleChange({
              value: parsePercentage(value),
              attr: ATTR_SALARY_CHANGE_PERCENTAGE,
            });
          }}
          on_blur={({ value }) => handleChange({
            value: parsePercentage(value),
            attr: ATTR_SALARY_CHANGE_PERCENTAGE,
          })}
          value={batchUpdates.salaryChangePercentage || null}
          mask={percentageMask}
        />

  const handleChange = ({ value, attr }) => {
    onChange({
      target: {
        value,
        dataset: {
          attr,
        },
      },
    });
  };

  handleOnChangeAll = (e) => {
    const { updateMemberActions, updateMembersState, updateMembersState: { updates } } = this.props;
    const { attr } = e.target.dataset;
    updateMemberActions.batchUpdate({ [attr]: e.target.value });
    updateMembersState.members.forEach((member) => {
      this.handleOnChangeMember(e, { ...member, updates: updates[member.ssn] });
    });
  };

0 个答案:

没有答案
相关问题