解决方案 »
- iframe submit提交,返回页面显示到主窗口上了
- 获取页面元素document.getElementById与document.all
- MzTreeView2.0如何将选中复选框checkbox的值提取出来?反之根据值选中复选框?
- onmouseup事件问题,大家帮帮忙,被这个问题快搞疯了
- js 如何判断用户输入的不含 `~!@#$%^&()-_=+]\\|:;\'<,>? 这些特殊字符
- javascript 拖拉问题
- 如何用正则表达式判断日期是否符合类似2003-5-6的格式?
- 使用控件数组的问题,急
- 请问,为何总得不到Backspace的键值?
- 请问使用Javascript可以获取到Jsp页面显示的PDF的当前页码么?
- 谁用过jquery的tabs的 为什么的tabs 切换不了?
- (求高人指点)jQuery获取使用HTML中动态DIV的ID值
classBack="invalid";
}
else classBack+=thisClass;<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<style>
body {
color: #000;
background-color: #FFF;
}input.invalid {
background-color: #FF9;
border: 2px red inset;
}label.invalid {
color: #F00;
font-weight: bold;
}</style>
<script type="text/javascript">
window.onload=initForms;function initForms(){
for (var i=0;i<document.forms.length ;i++ ){
document.forms[i].onsubmit=function(){return validForm();}
}
}function validForm(){
var allGood=true;
var allTags=document.getElementsByTagName("*"); for (var i=0;i<allTags.length ;i++ ) {
if(!validTag(allTags[i])){
allGood=false;
}
}
return allGood; function validTag(thisTag){
var outClass="";
var allClasses=thisTag.className.split(" "); for (var j=0;j<allClasses.length ;j++ ){
outClass+=validBasedOnClass(allClasses[j])+" ";
} thisTag.className=outClass; if(outClass.indexOf("invalid")>-1){
if(thisTag.className=="INPUT"){
thisTag.focus();
thisTag.select();
}
return false;
}
return true; function validBasedOnClass(thisClass){
var classBack="";
switch(thisClass){
case "":
case "invalid":break;
case "reqd":
if(allGood && thisTag.value==""){
classBack="invalid";
}
else classBack+=thisClass;
break;
default:
classBack+=thisClass;
}
return classBack;
}
}
}
</script>
</head> <body>
<form action="#">
<p><label for="userName">Your name:<input type="text" size="30" id="userName" class="reqd"/></label></p>
<p><label for="passwd1">Choose a password:<input type="password" size="30" id="passwd1" class="reqd"/></label></p>
<p><label for="passwd2">Verify password:<input type="password" size="30" id="passwd2" class="reqd passwd1"/></label></p>
<p><input type="submit" value="Submit" /> <input type="reset"/></p>
</form>
</body>
</html>
测试了,当点击多两次提交按钮,依然会提交表单的,阻止不了。
我改了改,这里
function validBasedOnClass(thisClass){
var classBack="";
switch(thisClass){
case "":
case "invalid":break;
case "reqd":
if(allGood && thisTag.value==""){
classBack="invalid "; //classBack="invalid "; 多加一个空格
}
classBack+=thisClass;
break;
default:
classBack+=thisClass;
}
return classBack;
}这样就正常了
function validTag(thisTag){
var outClass="";
var allClasses=thisTag.className.split(" "); for (var j=0;j<allClasses.length ;j++ ){
outClass+=validBasedOnClass(allClasses[j])+" ";//这里为什么要加个 " " ?
} thisTag.className=outClass;
本身html标签的css不是就那样吗?多个CSS样式控制的时候
<div class="green bold test"></div>
这上面就是3个样式,所以要起作用,当然要在不同的CSS之间加空格了