-若是name屬性值對應具備多個表單時 - 獲得的是具備相同的name屬性值的表單的集合
示例代碼:正則表達式
<body> <form action="#"> <!-- submit - 表示提交按鈕 --> <input type="submit"> </form> <form name="myform" action="#"> <input type="submit"> </form> <script> /* 獲取當前HTML頁面中個全部的表單元素 * 該方法是經過表單特有屬性獲取HTML頁面全部表單 */ console.log(document.forms); /* document.表單名稱 - 有些版本瀏覽器不支持 * 該方法是經過name屬性獲取指定表單 */ console.log(document.myform); </script> </body>
經過DOM的Document對象提供的獲取方法獲得頁面中的標籤數組
結論:爲何能夠同時是三種類型的對象:瀏覽器
示例代碼:ui
<body> <form action="#"> <!-- submit - 表示提交按鈕 --> <input type="submit"> </form> <form name="myform" action="#"> <input type="submit"> </form> <script> /* 獲取當前HTML頁面中個全部的表單元素 * 該方法是經過表單特有屬性獲取HTML頁面全部表單 */ console.log(document.forms); /* document.表單名稱 - 有些版本瀏覽器不支持 * 該方法是經過name屬性獲取指定表單 */ console.log(document.myform); </script> </body>
示例代碼:url
<body> <form action="#"> <!-- 輸入框 --> <input type="text" id="username" value="帥哥你叫啥?"> <!-- submit - 表示提交按鈕 --> <input type="submit"> </form> <script> // HTMLInputElement對象 var username = document.getElementById('username'); /* * 綁定獲取焦點(focus)事件 * 失去焦點(blur)事件 */ username.addEventListener('focus',function () { // select()方法 - 選擇當前輸入框中的全部文本內容(就是全選) username.select(); }); /* select事件 * 只要選擇對應元素的文本內容是被觸發 * select()方法 */ username.addEventListener('select',function () { /* HTMLInputElement對象 * selectionStart - 表示用戶選中文文本內容的開始索引值 * selectionEnd - 表示用戶選中文文本內容的結束索引值的下一個值 */ console.log(username.selectionStart,username.selectionEnd); var value = username.getAttribute('value'); // 獲取用戶選取的內容和對應的索引值 var result = value.substring(username.selectionStart,username.selectionEnd); console.log(result); }); </script> </body>
setSelectionRange()方法code
注意:orm
示例代碼:對象
<body> <form action="#"> <!-- 輸入框 --> <input type="text" id="username" value="寫點啥吧..."> <!-- 提交按鈕 --> <input type="submit"> </form> <script> // 經過數組的索引值獲取HTML頁面中指定的form表單 var form = document.forms[0]; // 經過索引值獲取指定的form元素 var username = form.elements[0]; username.addEventListener('focus',function () { /* setSelectionRange()方法 * 做用 - 設置選擇的文本內容 * 注意: * 焦點在文本內容的最後面 - select()方法(就是全選的意思) * 焦點在設置文本內容的範圍內有效 */ username.setSelectionRange(0,3); }) </script> </body>
示例代碼:索引
<body> <form action="#"> <!-- 輸入框 --> <input type="text" id="username" value="隨便寫點啥吧..."> <!-- 輸入框 --> <input type="text" id="username2"> <!-- 提交按鈕 --> <input type="submit"> </form> <script> // var result;// 全局做用域 // 經過ID屬性查找指定元素節點 var username = document.getElementById('username'); // 爲指定元素綁定 'copy'(複製的意思)事件 username.addEventListener('copy',function (event) { /* 獲得DataTransfer對象 * setData()方法 - 設置數據內容 */ // 解決瀏覽器兼容問題 var data = event.clipboardData || window.clipboardData; console.log(data); console.log('如今是複製操做...'); var value = username.value; // 獲取用戶操做時從開始到結束的索引值對應的內容 var result = value.substring(username.selectionStart,username.selectionEnd); console.log(result); // 至關於鍵盤上的 Ctrl + C 的效果 data.setData('text',result); }); // 爲指定元素綁定 'cut'(就是剪切的意思)事件 username.addEventListener('cut',function () { console.log('如今是剪切操做...'); }); // 經過ID屬性獲取指定元素節點 var username2 = document.getElementById('username2'); // 爲指定元素綁定 'paste'(粘貼的意思)事件 username2.addEventListener('paste',function (event) { // 阻止默認事件 event.preventDefault(); /* 獲得DataTransfer對象 * getData()方法 - 獲取數據內容 */ var data = event.clipboardData || window.clipboardData; var result = data.getData('text'); console.log(result); if (result ==='寫點啥吧') { result = '啦啦啦'; } username2.value = result; }); </script> </body>
示例代碼:事件
<body> <form action="#"> <select id="city"> <option id="jms" value="jms">佳木斯</option> <option value="heb">哈爾濱</option> <option value="hlj">黑龍江</option> </select> <select id="city2" multiple size="3"> <option value="jms">佳木斯</option> <option value="heb">哈爾濱</option> <option value="hlj">黑龍江</option> </select> </form> <script> //HTMLSelectElement對象 var city = document.getElementById('city'); // console.log(city.length);// 調用結果爲 3 - 表示列表項目的個數 console.log(city.options);// 調用結果爲 HTMLOptionsCollection(3) - 表示全部列表項目的類數組集合 console.log(city.selectedIndex);// 調用結果爲 0 - 表示選中項的索引值 var city2 = document.getElementById('city2'); // size屬性默認值爲 0 console.log(city2.size); // 經過索引值找到指定的項目 console.log(city2.item(1)); // 經過索引值刪除指定的項目 city2.remove(2); var jms = document.getElementById('jms'); console.log(jms.index);// 調用結果爲 0 - 表示當前元素在其屬性的選項列表中的索引值 console.log(jms.selected);// 調用結果爲 true - 表示當前元素是否被選中 console.log(jms.text);// 調用結果爲 佳木斯 - 表示當前元素的文本內容 console.log(jms.value);// 調用結果爲 jms - 表示當前元素的value屬性值 </script> </body>
示例代碼:
<body> <form action="#"> <!-- HTML表單組件元素的驗證屬性 * required - 驗證當前元素不能爲空 * pattern - 驗證當前元素輸入的內容是否與指定的正則表達式匹配 --> <input type="text" id="username" required pattern="^[0-9a-zA-Z]{6,12}$"> <input type="submit"> </form> <script> var username = document.getElementById('username'); /* 表單組件元素對應的對象提供了validity屬性 * 獲得ValidityState對象 - 提供了一系列的驗證屬性 */ console.log(username.validity); // console.log(username.validity.valueMissing); username.addEventListener('blur',function(){ /* valueMissing屬性 * 做用 - 配合元素中required屬性來使用 * 結果 * true - 表示當前元素內容爲空(錯誤的) * false - 表示當前元素內容不爲空(正確的) */ if (username.validity.valueMissing) { /* setCustomValidity(message)方法 * 做用 - 替換瀏覽器默認的錯誤提示信息 * 注意 - 若是輸入正確,必須將錯誤提示信息設置爲空 */ username.setCustomValidity('用戶名不能爲空'); } else { username.setCustomValidity(''); } /* patternMismatch屬性 * 做用 - 配合元素中pattern屬性來使用 */ if (username.validity.patternMismatch) { username.setCustomValidity('用戶名格式錯誤'); } else { username.setCustomValidity(''); } /* * rangeOverflow - 配合元素中max屬性來使用 * rangeUnderflow - 配合元素中min屬性來使用 * stepMismatch - 配合元素中step屬性來使用 * tooLong - 配合元素中maxLength屬性來使用 * tooShort - 配合元素中minLength屬性來使用 * typeMismatch - 配合<input type="url">等元素來使用 * customError - 配合setCustomValidity()方法來使用 * valid - 驗證當前元素是否驗證經過 * true - 表示當前元素驗證經過 * false - 表示當前元素驗證經過 */ }); </script> </body>
示例代碼:
<body> <form action="#"> <input type="text" id="username"> <input type="submit"> </form> <script> var username = document.getElementById('username'); username.addEventListener('blur',function(){ // 1.獲取當前元素的value屬性值 var value = username.value; // 2.根據獲取的值進行判斷 if (value === '' || value === undefined || value === null) { console.log('請輸入你的用戶名'); } }); </script> </body>
示例代碼:
<body> <form action="#"> <input type="text" id="username"> <input type="submit"> </form> <script> /* 經過索引值獲取到指定的元素 */ var form = document.forms[0]; /* 爲獲取到的元素綁定 'submit'(按鈕的意思) 事件 */ form.addEventListener('submit',function(event){ console.log('當前表單已被提交...'); // 阻止默認事件 event.preventDefault(); }); </script> </body>
示例代碼:
<body> <form action="#"> <input type="text" id="username"> <input id="btn" type="button" value="提交"> </form> <script> /* 經過ID屬性獲取指定元素節點 */ var btn = document.getElementById('btn'); /* 爲獲取到的元素節點綁定 'click'(點擊的意思)事件 */ btn.addEventListener('click',function(){ var form = document.forms[0]; form.submit();// 提交表單 }); </script> </body>