一個(gè)檢測(cè)表單數(shù)據(jù)的JavaScript實(shí)例
一個(gè)檢測(cè)表單數(shù)據(jù)的JavaScript實(shí)例,很簡(jiǎn)單,很實(shí)用,感興趣的朋友可以看看
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>每天一個(gè)JavaScript實(shí)例-檢測(cè)表單數(shù)據(jù)</title>
<style>
[role="alert"]{
background-color: #fcc;
font-weight: bold;
padding:5px;
border:1px dashed #000;
}
div{
margin:10px 0;
padding:5px;
width:400px;
background-color: #fff;
}
</style>
<script>
window.onload = function(){
document.getElementById("thirdfield").onchange = validateField;
document.getElementById("firstfield").onblur = mandatoryField;
document.getElementById("testform").onsubmit = finalCheck;
}
function validateField(){
removeAlert();
if(!isNaN(parseFloat(this.value))){
resetField(this);
}else{
badField(this);
generateAlert("You entered an invalid value in Third Field. only numeric values such as 105 or 3.45 are allowed");
}
}
function removeAlert(){
var msg = document.getElementById("msg");
if(msg){
document.body.removeChild(msg);
}
}
function resetField(elem){
elem.parentNode.setAttribute("style","background-color:#fff");
var valid = elem.getAttribute("aria-invalid");
if(valid) elem.removeAttribute("aria-invalid");
}
function badField(elem){
elem.parentNode.setAttribute("style","background-color#fee");
elem.setAttribute("aria-invalid","true");
}
function generateAlert(txt){
var txtNd = document.createTextNode(txt);
msg = document.createElement("div");
msg.setAttribute("role","alert");
msg.setAttribute("id","msg");
msg.setAttribute("class","alert");
msg.appendChild(txtNd);
document.body.appendChild(msg);
}
function mandatoryField(){
removeAlert();
if(this.value.length > 0 ){
resetField(this);
}else{
badField(this);
generateAlert("You must enter a value into First Field");
}
}
function finalCheck(){
//console.log("aaa");
removeAlert();
var fields =document.querySelectorAll('input[aria-invalid="true"]');
//var fields =document.querySelectorAll("input[aria-invalid='true']");//錯(cuò)誤?。。?
console.log(fields);
if(fields.length > 0){
generateAlert("You have incorrect fields entries that must be fixed before you can submit this form");
return false;
}
}
</script>
</head>
<body>
<form id = "testform">
<div>
<label for="firstfield">*first Field:</label><br />
<input id="firstfield" name = "firstfield" type = "text" aria-required = "true" />
</div>
<div>
<label for="secondfield">Second Field:</label><br />
<input id="secondfield" name = "secondfield" type = "text" />
</div>
<div>
<label for="thirdfield">Third Field(numeric):</label><br />
<input id="thirdfield" name = "thirdfield" type = "text" />
</div>
<div>
<label for="fourthfield">Fourth Field:</label><br />
<input id="fourthfield" name = "fourthfield" type = "text" />
</div>
<input type="submit" value = "Send Data" />
</form>
</body>
</html>
- js檢測(cè)離開或刷新頁(yè)面時(shí)表單數(shù)據(jù)是否更改的方法
- jquery ajax 如何向jsp提交表單數(shù)據(jù)
- 深入分析JSON編碼格式提交表單數(shù)據(jù)
- JSP 重置按鈕清空傳入的表單數(shù)據(jù)實(shí)例
- js清空表單數(shù)據(jù)的兩種方式(遍歷+reset)
- javascript檢查表單數(shù)據(jù)是否改變的方法
- javascript定時(shí)保存表單數(shù)據(jù)的代碼
- js下利用userData實(shí)現(xiàn)客戶端保存表單數(shù)據(jù)
- 利用JS輕松實(shí)現(xiàn)獲取表單數(shù)據(jù)
相關(guān)文章
微信小程序?qū)崿F(xiàn)手機(jī)獲取驗(yàn)證碼倒計(jì)時(shí)60s
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)手機(jī)獲取驗(yàn)證碼后倒計(jì)時(shí)60s,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
javascript實(shí)現(xiàn)在網(wǎng)頁(yè)中運(yùn)行本地程序的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)在網(wǎng)頁(yè)中運(yùn)行本地程序的方法,實(shí)例分析了JavaScript基于ActiveXObject運(yùn)行本地程序的技巧,需要的朋友可以參考下2016-02-02
微信小程序和H5頁(yè)面間相互跳轉(zhuǎn)代碼實(shí)例
這篇文章主要介紹了微信小程序和H5頁(yè)面間相互跳轉(zhuǎn)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
H5+C3+JS實(shí)現(xiàn)五子棋游戲(AI篇)
這篇文章主要為大家詳細(xì)介紹了H5+C3+JS實(shí)現(xiàn)五子棋游戲AI篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09
js中合并對(duì)象的幾種實(shí)現(xiàn)方法
"js 合并對(duì)象"是一種在JavaScript編程中常見的操作,用于將多個(gè)對(duì)象的屬性合并到一起,通常,我們會(huì)使用ES6的擴(kuò)展運(yùn)算符或者Object.assign()函數(shù)來(lái)實(shí)現(xiàn)這個(gè)功能,感興趣的可以了解一下2023-08-08
用JS寫的簡(jiǎn)單的計(jì)算器實(shí)現(xiàn)代碼
參加某公司的面試后,有一機(jī)試題目:用web技術(shù)開發(fā)一個(gè)B/S結(jié)構(gòu)的公式解析器。于是想了想思路,神來(lái)一筆想先寫個(gè)計(jì)算器程序做基礎(chǔ),于是便寫了這個(gè)程序。2009-09-09
JavaScript觀察者模式(publish/subscribe)原理與實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript觀察者模式(publish/subscribe)原理與實(shí)現(xiàn)方法,簡(jiǎn)單分析了javascript觀察者模式的原理、功能并結(jié)合實(shí)例形式給出了觀察者模式的實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-03-03
javascript中的previousSibling和nextSibling的正確用法
這篇文章主要介紹了javascript中的previousSibling和nextSibling的正確用法的相關(guān)資料,需要的朋友可以參考下2015-09-09
JS前后端實(shí)現(xiàn)身份證號(hào)驗(yàn)證代碼解析
這篇文章主要介紹了JS前后端實(shí)現(xiàn)身份證號(hào)驗(yàn)證代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07

