将输入设置为其最近的有效值



我正在尝试为HTML5的input type="number"元素编写一个polyfill。如果你的浏览器已经支持,这里有一个比较示例

如果你输入了一个无法解析为数字的值,比如"abc",当你模糊时,Chrome会将该值设置回你最近的有效值。我想我可以通过在字段获得焦点时将值存储在data-属性中来做到这一点,以防我需要将其设置回去,但有没有更自然的方法来"记住"表单字段最近的有效值?

这通常被称为undo。这个家伙向你展示了如何使用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> 

最新更新