首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JavaScript input.form 屬性用法解析:獲取表單元素所屬 form 物件

     編輯:程式設計疑難解答

代碼片段

var x = document.getElementById('x');
var output = document.createElement('p');
x.form.appendChild(output); // 關鍵行

原理解析

  • HTMLInputElement.form 唯讀屬性,返回該輸入元素所屬的 HTMLFormElement 物件(最近的祖先 <form>)。
  • 若輸入元素不在任何 form 內,返回 null。
  • 等價於 x.closest('form')(現代 DOM API)。

相容性提醒

特性IE8-現代瀏覽器
input.form支援支援

但代碼中使用的 oninput、textContent、valueAsNumber **IE8- 不支援**。

IE8- 兼容寫法

// 事件
if (x.addEventListener) {
    x.addEventListener('input', handler);
} else {
    x.attachEvent('onpropertychange', function(e) {
        if (e.propertyName === 'value') handler();
    });
}

// 文字內容
output.textContent = str; // 現代
output.innerHTML = str;   // IE8- 兼容(注意 XSS)

// 數值
var v = parseFloat(x.value) || 0; // 替代 valueAsNumber

完整兼容版片段

var form = x.form || x.closest('form');
if (form) form.appendChild(output);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved