我想知道使用parseFloat和inputmasked时是否可以显示逗号而不是点。我有两个输入字段,其中一个获取另一个的值,但是当我在第一个输入数字时,第二个输入字段看不到我猜的逗号。看起来像这样:
在我的遮罩中,我将十进制符号设置为逗号,但是如您所见,第二个输入字段将其忽略。我认为这是因为该数字被解析为浮动的。而且由于之后需要进行一些计算,因此它必须是浮动的。有人知道第二个输入字段是否可能显示逗号吗?
以下是一些代码:
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] });
});
};