一个检测表单数据的JavaScript实例,很简单,很实用,感兴趣的朋友可以看看
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />
<title>每天一个JavaScript实例-检测表单数据</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\']\");//错误!!!
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>
本文地址:https://www.stayed.cn/item/19955
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我