深入理解表單腳本系列第一篇——表單對象

来源:http://www.cnblogs.com/xiaohuochai/archive/2016/09/15/5184409.html
-Advertisement-
Play Games

× 目錄 [1]表單屬性 [2]表單事件 [3]表單方法 前面的話 javascript最初的一個應用就是分擔伺服器處理表單的責任,打破處處依賴伺服器的局面。儘管目前的web和javascript已經有了長足的發展,但web表單的變化並不明顯。由於web表單沒有為許多常見任務提供現成的解決方法,很多 ...


×
目錄
[1]表單屬性 [2]表單事件 [3]表單方法

前面的話

  javascript最初的一個應用就是分擔伺服器處理表單的責任,打破處處依賴伺服器的局面。儘管目前的web和javascript已經有了長足的發展,但web表單的變化並不明顯。由於web表單沒有為許多常見任務提供現成的解決方法,很多開發人員不僅會在驗證表單時使用javascript,而且還增強了一些標準表單控制項的預設行為。本文是表單腳本系列第一篇——表單對象

 

表單屬性

  在HTML中,表單是由form元素來表示的,而在javascript中,表單對應的則是HTMLFormElement類型,HTMLFormElement繼承了HTMLElement,但也有自己獨有的屬性和方法

  acceptCharset   伺服器能夠處理的字元集;等價於HTML中的accept-charset特性

  關於accept-charset屬性的詳細情況移步至此

  action   接受請求的URL;等價於HTML中的action特性

  關於action屬性的詳細情況移步至此

  enctype   請求的編碼類型;等價於HTML中的enctype特性

  關於enctype屬性的詳細情況移步至此

<form name="form" action="#"></form>
<script>
var form = document.form;
console.log(form.acceptCharset);//''
console.log(form.action);//"file:///C:/Users/Administrator/Desktop/iframe.html#"
console.log(form.enctype);//application/x-www-form-urlencoded
</script>

  elements   表單中所有控制項的集合(HTMLCollection)

  length   表單中控制項的數量

<form name="form" action="#">
    <input type="text">
    <textarea></textarea>
</form>    
<script>
var form = document.form;
console.log(form.elements)//[input,textarea]
console.log(form.length)//2
</script>

  method   要發送的HTTP請求類型,通常是"get"或"post";等價於HTML的method特性

  關於method屬性的詳細情況移步至此

  name   表單的名稱;等價於HTML的name特性

  關於name屬性的詳細情況移步至此

  target   用於發送請求和接收響應的視窗名稱;等價於HTML的target特性

  關於target屬性的詳細情況移步至此

<form name="form" action="#"></form>
<script>
var form = document.form;
console.log(form.method);//get
console.log(form.name);//form
console.log(form.target);//''
</script>

 

表單事件

  reset事件    將所有表單域重置為預設值

  submit事件     提交表單

<form name="form" action="#">
    <input name="test" value="1">
    <input type="reset">
    <input type="submit">
</form>
<script>
var form = document.form;
form.onreset = function(){
    form.test.value = "2";
    //若不使用return false阻止預設事件,那麼reset將會把form.test的value重新置成1
    return false;
}
form.onsubmit = function(){
    form.test.value = "3";
}
</script>

表單方法

submit()方法

  在javascript中,以編程方式調用submit()方法也可以提交表單。而且,這種方式無需表單包含提交按鈕,任何時候都可以正常提交表單  

  以調用submit()方法提交表單時,不會觸發submit事件

reset()方法

  在用戶單擊重置按鈕時,表單會被重置。使用type特性值為"reset"的<input>或<button>都可以創建重置按鈕

<input type="reset" value="Reset Form">
<button type="reset">Reset Form</button>

  與調用submit()方法不同,調用reset()方法會像單擊重置按鈕一樣觸發reset事件

  點擊外部提交按鈕後,瀏覽器URL變成file:///C:/inetpub/wwwroot/test.html?test=1#,且沒有觸發onreset事件,input的value值沒有變化

  點擊外部重置按鈕後,觸發reset事件,input的value值變成2

<form name="form" action="#">
    <input name="test" value="1">
</form>
<button id="btn1">外部提交</button>
<button id="btn2">外部重置</button>
<script>
var form = document.form;
form.onreset = function(){
    form.test.value = "2";
    return false;
}
form.onsubmit = function(){form.test.value = "3";}
btn1.onclick = function(){form.submit();}
btn2.onclick = function(){form.reset();}
</script>


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 題目鏈接 http://www.lydsy.com/JudgeOnline/problem.php?id=2038 Description 作為一個生活散漫的人,小Z每天早上都要耗費很久從一堆五顏六色的襪子中找出一雙來穿。終於有一天,小Z再也無法忍受這惱人的找襪子過程,於是他決定聽天由命……具體來說 ...
  • Jsp實際就是Servlet。 我們訪問Http://localhost:8080/Web/index.jsp的流程: 1 【jsp文件名】.jsp轉義為【jsp文件名_jsp】.java,文件存儲在Tomcat下的Work目錄下的org的apache的jsp文件中。 2 編譯jsp文件名_jsp. ...
  • Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction ...
  • 通常我們會看到一些函數聲明後面會跟著一個const,如下 void function() const{} 這個const是做什麼的呢? 看一下下麵的例子,就知道了。直接在編譯前,就會提示下麵的兩個錯誤. #include "stdafx.h" #include using namespace std... ...
  • ...
  • 訪問修飾符:pubulc:公共的,只要引用了命名空間,就可以隨意進行訪問private:私有的,只有當前類內部才可以訪問 internal:內部的,當前程式集內可以訪問,程式集就是命名空間,此修飾符是預設的protected:被保護的,當前類和它的子類才可以訪問 命名空間:也叫程式集,項目中每一個文 ...
  • 1.QPalette的概念 調色板類QPallete提供了顏色角色(color roles)概念,是指當前GUI界面中顏色的職責,通過枚舉變數QPalette::ColorRole來定義, 比較常用的顏色角色有: QPalete::Window,通常指視窗部件的背景色; QPalette:Windo ...
  • 1、數據類型轉換: ①隱式轉換:程式根據需要,自動轉化數據類型; ②強制轉換:主動調用函數執行轉換; 2、字元串強制轉換: ①x.toString():不能轉換null和undefined; ②String(x):萬能; 3、數字類型強制轉換: ①Number(x):轉換為數字類型;、 ②parse ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...