![](/img/trans.png)
[英]How to show a input text field when a value is entered in input number type field in javascript?
[英]Show string in input field type=number
是否可以在number type
的input
字段中显示字符串?
我想做这样的事情:
<input value="4'000" placeholder="Type some numbers" type="number" />
它将始终显示占位符,因为“4'000”有一个撇号,因此是一个字符串。
关于如何在数字输入中显示字符串(如果可能没有 package - 我正在使用 React)的任何想法?
谢谢!
从 WDN Web 文档输入 type="number"
number 类型的输入元素用于让用户输入数字。 它们包括内置验证以拒绝非数字条目。
所以你不能在数字输入中显示字符串。
但是你可以将 "4'000" 转换为 '4000',并将其显示为一个数字:
"4'000".replaceAll("'", "") // => "4000"
<input value="4000" placeholder="Type some numbers" type="number">
因此,在您在值字段上添加value
之前,您可以做的是首先“处理”它以删除值上的所有非数字内容:
使用这个 function: \D
是匹配所有非数字的简写正则表达式。
const stripNonNumeric = str => str.replace(/\D/g,'');
(如果您使用状态)
const [val, setVal] = useState(stripNonNumeric(props.defaultValue));
const onChangeValue = (e) => {
// this should be unnecessary if the field is already type="number",
// but if its not then this use this, else just use e.target.value
const value = stripNonNumeric(e.target);
setVal(value);
};
return <input type="number" value={val} onChange={onChangeValue} />;
如果您从其他地方获得价值:
const value = props.valFromSomewhere;
return <input type="number" value={stripNonNumeric(value)} />;
对于有理数/整数但不是字符串的值,最好将input type
用作数字。
因此,在您的情况下,您可以使用text
作为输入字段以获得更好的可读性,并且在 javascript 中,您可以将该字符串转换为数字。
let num = document.getElementById("some-number").value; num = num.replace(/\'/g,''); num = parseInt(num,10); console.log(num);
<input type="text" value="4'000" id="some-number" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.