javascript - 将输入设置为最新的有效值

标签 javascript html validation polyfills

我正在尝试为 HTML5 的 input type="number" 元素编写一个polyfill。 Here's a comparative example如果您的浏览器已经支持它。

如果您输入的值无法解析为数字,例如“abc”,当您进行模糊处理时,Chrome 会将该值设置回您最近使用的有效值。我想我可以通过在字段获得焦点时将值存储在 data- 属性中来做到这一点,以防万一我需要将其设置回来,但是有没有更自然的方法来“记住” “表单字段的最新有效值?

最佳答案

这通常称为撤消This fellow向您展示如何使用 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> 

关于javascript - 将输入设置为最新的有效值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9010486/

相关文章:

javascript - 如何切换隐藏的分隔线以在 HTML 中显示?

javascript - 本地和远程站点上的 Node.js/Socket.io Access-Control-Allow-Origin 错误

javascript - 如何使用网络音频 API/javascript 操作 DOM?

php - PHP echo 中的引号破坏了 HTML 值

javascript - 在 IE 中将对象转换为数组(Javascript)

javascript - JQGrid下拉列表

html - 在没有内容换行的情况下将 div 堆叠在 float div 上?

java - XMLGregorianCalendar 日期序列化为空字符串

java - While 循环仅检查用户输入的正整数

javascript - JQuery - 表单验证 - Onblur