我正在尝试为 HTML5 的input type="number"
元素编写一个 polyfill。如果您的浏览器已经支持它,这是一个比较示例。
如果您输入的值无法解析为数字,例如“abc”,则当您进行模糊处理时,Chrome 会将该值设置回您最近的有效值。我想我可以通过在data-
字段获得焦点时将值存储在属性中来做到这一点,以防万一我需要将其设置回来,但是有没有更自然的方法来“记住”表单字段的最新有效值有?
我正在尝试为 HTML5 的input type="number"
元素编写一个 polyfill。如果您的浏览器已经支持它,这是一个比较示例。
如果您输入的值无法解析为数字,例如“abc”,则当您进行模糊处理时,Chrome 会将该值设置回您最近的有效值。我想我可以通过在data-
字段获得焦点时将值存储在属性中来做到这一点,以防万一我需要将其设置回来,但是有没有更自然的方法来“记住”表单字段的最新有效值有?
This is often called undo. This fellow shows you how to do it with JavaScript:
<html>
<head>
<title>Title</title>
<script type="text/javascript" language="javascript">
function InputBalance_OnChange(sender) {
if(isNaN(sender.value)) {
sender.value = isNaN(sender.prevValue) ? 0 : sender.prevValue;
} else {
sender.prevValue = sender.value;
}
}
</script>
</head>
<body>
<table>
<tr>
<td>Account Number</td>
<td><input id="inputAccountNumber" type="text" /></td>
</tr>
<tr>
<td>Balance</td>
<td><input id="inputBalance" type="text" onChange="InputBalance_OnChange(this)" value="0" /></td>
</tr>
</table>
</body>
</html>