JavaScript實(shí)現(xiàn)異步提交表單數(shù)據(jù)
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)異步提交表單數(shù)據(jù)的具體代碼,供大家參考,具體內(nèi)容如下
效果如下:


首先看一下HTML代碼部分:
<div class="container">
<form class="form-horizontal" onsubmit="return false;">
<div class="form-group">
<label class="control-label col-md-3">姓名:</label>
<div class="col-md-4">
<input type="type" name="txtname" value=" " class="form-control" id="txtName"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3">性別:</label>
<div class="col-md-4">
<select class="form-control" name="cboSex" id="cboSex">
<option>男</option>
<option>女</option>
</select>
</div>
</div>
<div class=" form-group">
<label class="control-label col-md-3">地址:</label>
<div class="col-md-4">
<textarea class="form-control" name="txtAddress" id="txtAddress"></textarea>
</div>
</div>
<div class="form-group">
<button class="btn btn-primary col-md-offset-4" onclick="getVal()">獲取表單的值</button>
<button class="btn btn-primary" onclick="postgetData()">提交數(shù)據(jù)</button>
<button class="btn btn-success" onclick="getData()">獲取數(shù)據(jù)</button>
</div>
</form>
</div>
JavaScript部分如下:
function postgetData() {
var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject("microsoft.XMLHTTP");
}
xhr.open("post", "/JQuery/getDataRequest", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var yy = "name=" + document.getElementById("txtName")
.value + "&sex=" + document.getElementById("cboSex")
.value + "&address=" + document.getElementById("txtAddress").value;
xhr.send(yy);
xhr.onreadystatechange = function () {
if (xhr.status == 200 && xhr.readyState == 4) {
var txt = xhr.responseText;
console.log(txt);
}
}
}
xhr.send(data);//data表單中需要提交的數(shù)據(jù)(字符串)
setRequestHeader語法:
setRequestHeader(header,value):向請(qǐng)求添加 HTTP 頭。
header: 規(guī)定頭的名稱
value: 規(guī)定頭的值
1-5 AJAX - 服務(wù)器響應(yīng)
使用 XMLHttpRequest對(duì)象的 responseText或 responseXML 屬性獲取來自服務(wù)器的響應(yīng)
responseText:獲得字符串形式的響應(yīng)數(shù)據(jù)。
responseXML:獲得 XML 形式的響應(yīng)數(shù)據(jù)。
onreadystatechange 事件
每當(dāng) readyState 改變時(shí),就會(huì)觸發(fā) onreadystatechange 事件。
readyState 屬性存有 XMLHttpRequest 的狀態(tài)信息
下面是 XMLHttpRequest 對(duì)象的三個(gè)重要的屬性:
onreadystatechange:存儲(chǔ)函數(shù)(或函數(shù)名),每當(dāng) readyState 屬性改變時(shí),就會(huì)調(diào)用該函數(shù)。
readyState:存有 XMLHttpRequest 的狀態(tài)。從 0 到 4 發(fā)生變化。
0: 請(qǐng)求未初始化
1: 服務(wù)器連接已建立
2: 請(qǐng)求已接收
3: 請(qǐng)求處理中
4: 請(qǐng)求已完成,且響應(yīng)已就緒
status: 200: “OK” 404: 未找到頁面
在 onreadystatechange 事件中,我們規(guī)定當(dāng)服務(wù)器響應(yīng)已做好被處理的準(zhǔn)備時(shí)所執(zhí)行的任務(wù)。
當(dāng) readyState 等于 4 且狀態(tài)為 200 時(shí),表示響應(yīng)已就緒:
控制器方法如下:
Request.Form (提交方式為post)
public ActionResult getDataRequest()
{
string name = Request.Form["name"];
string sex = Request.Form["sex"];
string address = Request.Form["address"];
string str = name + "&" + sex + "&" + address + "&" + "Request只能接收post數(shù)據(jù)";
return Content(str);
}
這樣就可以提交表單中的數(shù)據(jù)啦。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
讓mayfish支持mysqli數(shù)據(jù)庫驅(qū)動(dòng)的實(shí)現(xiàn)方法
mysql 是非持繼連接函數(shù)而 mysqli 是永遠(yuǎn)連接函數(shù)。也就是說 mysql 每次鏈接都會(huì)打開一個(gè)連接的進(jìn)程而 mysqli 多次運(yùn)行 mysqli 將使用同一連接進(jìn)程,從而減少了服務(wù)器的開銷。2010-05-05
JavaScript數(shù)值千分位格式化的兩種簡單實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狫avaScript數(shù)值千分位格式化的兩種簡單實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08
Express與NodeJs創(chuàng)建服務(wù)器的兩種方法
本文主要介紹了NodeJs創(chuàng)建Web服務(wù)器;Express創(chuàng)建Web服務(wù)器的兩種方法,具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02
websocket4.0+typescript 實(shí)現(xiàn)熱更新的方法
這篇文章主要介紹了websocket4.0+typescript 實(shí)現(xiàn)熱更新的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
JavaScript style對(duì)象與CurrentStyle對(duì)象案例詳解
這篇文章主要介紹了JavaScript style對(duì)象與CurrentStyle對(duì)象案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
30個(gè)高逼格代碼的JavaScript高級(jí)單行代碼
這篇文章中列出了一個(gè)系列的 30 個(gè) JavaScript 單行代碼,它們在使用 vanilla js(≥ ES6)進(jìn)行開發(fā)時(shí)非常有用,它們也是使用該語言在最新版本中為我們提供的所有功能來解決問題的優(yōu)雅方式,將它們分為以下5大類:日期、字符串、數(shù)字、數(shù)組、工具2023-08-08

