在使用input 元素且 type 属性值不是默认的text的时候(numberdate), 获取输入数据的参数e.target.valuestring类型,在业务逻辑中往往需要将string转换为numberdate,常规的转换方式为parseFloatparseIntDate.parse等方法转换,现在更推荐的方式是使用valueAsNumbervalueAsDate方法。


number类型 <input />

  <!-- rest html content -->
  <input type="number" id="common-input" />
  <script>
    const inputStr = document.querySelector('input.common-input')
    const numberValue = parseInt(inputStr)
    // ...rest javascript code
  </script>
  <!-- rest html content -->
  <input type="number" id="recommand-input" />
  <script>
    const inputStr = document.querySelector('input.recommand-input')
    const numberValue = inputStr.valueAsNumber
    if (!isNaN(numberValue)){
      // ...rest javascript code
    }
  </script>

date类型 <input />

  <!-- rest html content -->
  <input type="date" id="common-input" />
  <script>
    const inputStr = document.querySelector('input.common-input')
    const dateValue = new Date(Date.parse(inputStr))
    // ...rest javascript code
  </script>
  <!-- rest html content -->
  <input type="date" id="recommand-input" />
  <script>
    const inputStr = document.querySelector('input.recommand-input')
    const dateValue = inputStr.valueAsDate
    if (inputStr){
      // ...rest javascript code
    }
  </script>

说明

valueAsNumbervalueAsDateHTMLInputElement提供的属性,因此在原生JavascriptReactVue中都可以使用!


参考

  1. Steve (Builder.io)open in new window
  2. MDNopen in new window
最近修改时间: