JavaScript表單腳本簡介
剛開始人們使用JavaScript,最主要的目的之一就是表單的驗證,分擔伺服器處理表單的責任。雖然現流行的大部分提交方式是透過ajax,但了解表單,對於ajax方式也是有重大幫助的!所以,大家不要看輕表單。
一、表單的基礎知識
在HTML中,表單以元素來表示,而在JavaScript中,表單對應的則是HTMLFormElement類型。
表格HTMLFormElement的屬性與方法
#屬性或方法 | 作用說明 |
---|---|
acceptCharset | 伺服器能夠處理的字元集;等價於HTML中的accept-charset特性 |
#接收請求的URL;等價於HTML中的action特性 | |
表單中所有控制項的集合(HTMLCollection) | |
請求的編碼型別;等價於HTML中的enctype特性 | |
表單中控制項的數量 | |
要傳送的HTTP請求類型;等價於HTML的method特性 | |
表單的名稱;等價於HTML的name特性 | |
將所有表單域重設為預設值 | |
提交表單 | |
用於傳送請求和接收回應的視窗名稱;等價於HTML的target特性 |
屬性 | #作用說明 |
---|---|
disabled | 布林值,表示目前欄位是否已停用 |
指向目前欄位所屬表單的指標;只讀 | |
目前欄位的名稱 | |
布林值,表示目前欄位是否只讀 | |
表示目前欄位的切換(tab)序號 | |
目前欄位的類型 | |
目前欄位被提交給伺服器的值。對檔案欄位來說,這個屬性是唯讀的,包含著檔案在電腦的路徑 |
属性和方法 | 作用说明 |
---|---|
add(newOption, relOption) | 向控件中插入新项,其位置在相关项relOption之前 |
multiple | 是否支持多项选择 |
options | 所有项集合 |
remove(index) | 移除给定位置的选项 |
selectIndex | 基于0的选中项的索引,如果没有选中项,则该值为-1;对于支持多选的控件,只保存选中项的第一项索引 |
size | 选择框中可见的行数 |
HTMLOptionElement的属性和方法:
属性和方法 | 作用说明 |
---|---|
index | 当前选项在options集合中的索引 |
label | 当前选项的标签 |
selected | 当前选项是否被选中 |
text | 选项的文本 |
value | 选项的值 |
<form method="post" action="" id="myForm"> <label for="selLocation">Where do you want to live?</label> <select name="location" id="selLocation"> <option value="Sunnyvale, CA">Sunnyvale</option> <option value="Los Angeles, CA">Los Angeles</option> <option value="Mountain View, CA">Mountain View</option> <option value="">China</option> <option>Australia</option> </select> </form>12345678910
// 选择上述每个选项后,value值分别为:["Sunnyvale, CA", "Los Angeles, CA", "Mountain View, CA", "", "Australia"] document.getElementById("selLocation").value; // 获得第一个选项的文本和值 document.forms[0].elements["location"].options[0].text;document.forms[0].elements["location"].options[0].value;12345
(1)展示规则:有value属性且值不为空,则展示value属性的值;否则展示该项的文本值。
(2)value值规则:有value属性(不管是否为空),获得的都是对应value属性的值;否则为该项文本值。
1. 选择选项
function getSelectedOptions(selectbox){ var result = new Array(); var option = null; for (var i=0, len=selectbox.options.length; i < len; i++){ option = selectbox.options[i]; if (option.selected){ result.push(option); } } return result; }12345678910111213
2. 添加选项
(1)DOM方式
var newOption = document.createElement("option");newOption.appendChild(document.createTextNode("Option text"));newOption.setAttribute("value", "Option value");selectbox.appendChild(newOption);1234
(2)Option构造函数
var newOption = new Option("Option text", "Option value"); selectbox.appendChild(newOption);12
(3)选择框的add方法(最佳方案)
var newOption = new Option("Option text", "Option value"); selectbox.add(newOption, undefined); // 插入到最后12
3. 移除选项
(1)DOM方
selectbox.removeChild(selectbox.options[0]);1
(2)选择框的remov
selectbox.remove(0);1
(3)将相应的选项设置为null(遗留机制)
selectbox.options[0] = null;1
4. 移动和重排选项
DOM的appendChild方法(只能添加到最后),如果appendChild传入一个文档中已有的元素,那么就会先从该元素的父节点中移除它,再把它添加到指定的位置。
// 将第一个选择框中的第一个选项移动到第二个选择框中 var selectbox1 = document.getElementById("selLocations1"), selectbox2 = document.getElementById("selLocations2");selectbox2.appendChild(selectbox1.options[0]); 1234
DOM的insertBefore方法
// 将选择框中的选项向后移动一个位置 var optionToMove = selectbox.options[selectbox.options.length - 1]; selectbox.insertBefore(optionToMove, selectbox.options[0]);123
四、表单序列化
对表单字段的名称和值进行URL编码,使用“&”分隔;
不发送禁用的表单字段;
只发送勾选的复选框和单选按钮;
不发送type为“reset”和“button”的按钮;
选择框中每个选中的值单独条目发送;
五、富文本编辑
contenteditable:用户立即可编辑该元素
data:text/html, <html contenteditable>1
以上是JavaScript表單腳本簡介的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

物件關聯映射(ORM)框架在python開發中扮演著至關重要的角色,它們透過在物件和關聯式資料庫之間建立橋樑,簡化了資料存取和管理。為了評估不同ORM框架的效能,本文將針對以下流行框架進行基準測試:sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM測試方法基準測試使用了一個包含100萬筆記錄的SQLite資料庫。測試對資料庫執行了以下操作:插入:向表中插入10,000條新記錄讀取:讀取表中的所有記錄更新:更新表中所有記錄的單一欄位刪除:刪除表中的所有記錄每個操作

js和vue的關係:1、JS作為Web開發基石;2、Vue.js作為前端框架的崛起;3、JS與Vue的互補關係;4、JS與Vue的實踐應用。

物件關係映射(ORM)是一種程式設計技術,允許開發人員使用物件程式語言來操作資料庫,而無需直接編寫sql查詢。 python中的ORM工具(例如SQLAlchemy、Peewee和DjangoORM)簡化了大數據專案的資料庫互動。優點程式碼簡潔性:ORM消除了編寫冗長的SQL查詢的需要,這提高了程式碼簡潔性和可讀性。資料抽象化:ORM提供了一個抽象層,將應用程式程式碼與資料庫實作細節隔離開來,提高了靈活性。效能最佳化:ORM通常會使用快取和批次操作來優化資料庫查詢,從而提高效能。可移植性:ORM允許開發人員在不

js刷新目前頁面的方法:1、location.reload();2、location.href;3、location.assign();4、window.location。詳細介紹:1、location.reload(),使用location.reload()方法可以重新載入目前頁面;2、location.href,可以透過設定location.href屬性來刷新目前頁面等等。

JS中__proto__和prototype是兩個與原型相關的屬性,它們在功能上稍有不同。本文將具體介紹並比較這兩者的區別,並提供相應的程式碼範例。首先,我們先來了解它們的意義和用途。 proto__proto__是物件的內建屬性,它用來指向該物件的原型。每個物件都有一個__proto__屬性,包括自訂物件、內建物件和函數物件。透過__proto__屬

JS-Torch簡介JS-Torch是一種深度學習JavaScript函式庫,其語法與PyTorch非常相似。它包含一個功能齊全的張量物件(可與追蹤梯度),深度學習層和函數,以及一個自動微分引擎。 JS-Torch適用於在JavaScript中進行深度學習研究,並提供了許多方便的工具和函數來加速深度學習開發。圖片PyTorch是一個開源的深度學習框架,由Meta的研究團隊開發和維護。它提供了豐富的工具和函式庫,用於建立和訓練神經網路模型。 PyTorch的設計理念是簡單和靈活,易於使用,它的動態計算圖特性使

对象关系映射(ORM)是一种技术,它允许在面向对象编程语言和关系数据库之间建立桥梁。使用pythonORM可以显著简化数据持久性操作,从而提高应用程序的开发效率和可维护性。优势使用PythonORM具有以下优势:减少样板代码:ORM自动生成sql查询,从而避免编写大量的样板代码。简化数据库交互:ORM提供了一个统一的接口,用于与数据库交互,简化了数据操作。提高安全性:ORM使用参数化查询,可以防止SQL注入等安全漏洞。促进数据一致性:ORM确保对象与数据库之间的同步,维护数据一致性。选择ORM有
