鍍金池/ 問答/HTML/ HTMLFormElement.reset() 當把觸發(fā)事件的button id

HTMLFormElement.reset() 當把觸發(fā)事件的button id改為"reset "時無法調用reset()

測試地址:demo
在這個 demo 里,form 表單是可以重置的,但把觸發(fā)事件的 button id:resetForm 改為 reset 后,報錯:
圖片描述

這個問題以前也碰到過,想知道這是為什么?

test.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="test reset()">
  <title>JS Bin</title>
</head>
<body>
  <form id="myForm">
    <input type="text"><br/>
    <input type="text"><br/>
    <input id="resetForm" type="button" value="reset">
  </form>
</body>

<script>
window.onload = function() {
  var reset = document.getElementById("resetForm");
  reset.onclick = function() {
    document.getElementById("myForm").reset()
  }
}
</script>
</html>
回答
編輯回答
你的瞳

你把 ID 設置成 submit 也不行. submitreset 是表單內input的兩個type功能按鈕. 不能設置為 ID. 你直接把<input type="reset">就行了

2018年4月9日 18:46
編輯回答
離魂曲

這個是表單歷史 API ,可以直接通過 form.formElementName 或 form.formElementId 來獲取表單內的元素,所以這句代碼:

document.getElementById("myForm").reset()

運行到

document.getElementById("myForm").reset 

的時候,實際上是在 myForm 表單里獲取了 name='reset' 或者 id='reset' 的元素,然后執(zhí)行 () 當然會報錯,不信你可以試試:

console.log(myform.reset===reset) //返回true
2017年9月5日 03:08