我打算用js做一些注册页面的验证,但是在判定输入框为空的时候,出现了问题:
我的代码:
1.aspx代码:<asp:TextBox ID="txtClinicName" runat="server" Width="270" MaxLength="20" onblur="isNull(this);">
</asp:TextBox>
<asp:TextBox ID="txtClinicStreet" runat="server" Width="270" MaxLength="30" onblur="isNull(this))" ></asp:TextBox>
2.js代码:
/**********是否为空************/
function isNull(obj) { objvalue = trim(obj.value); if (objvalue.length==0||objvalue.value=="") { //alert("不能为空!");
obj.focus();
obj.style.background = "red";
return false;
} else { obj.style.background = "white";
}
}/********去除左右的空格***********/
function trim(str) { return str.replace(/(^\s*)|(\s*$)/g, "");}我的代码的一个问题是:当两个以上的文本框没有值的时候,都发生onblur事件的时候,两个文本框会抢focus(),但是屏幕
只允许一个焦点啊,这就造成了无限次循环,所以我把focus()给注释掉了;
我的本意是在onblue的时候就验证,不是在最后提交的时候,之前让文本框获得焦点也是为了阻止提交按钮提交空数据,注释了focus()我最后提交的时候,空文本框中的数据还是提交到服务器了。我需要的解答:如何在onblue的时候很快验证,并把验证的结果让提交按钮也知道,这样提交按钮可以根据各个文本框的验证结果阻止提交。(太啰嗦了,谢谢各位了)
我的代码:
1.aspx代码:<asp:TextBox ID="txtClinicName" runat="server" Width="270" MaxLength="20" onblur="isNull(this);">
</asp:TextBox>
<asp:TextBox ID="txtClinicStreet" runat="server" Width="270" MaxLength="30" onblur="isNull(this))" ></asp:TextBox>
2.js代码:
/**********是否为空************/
function isNull(obj) { objvalue = trim(obj.value); if (objvalue.length==0||objvalue.value=="") { //alert("不能为空!");
obj.focus();
obj.style.background = "red";
return false;
} else { obj.style.background = "white";
}
}/********去除左右的空格***********/
function trim(str) { return str.replace(/(^\s*)|(\s*$)/g, "");}我的代码的一个问题是:当两个以上的文本框没有值的时候,都发生onblur事件的时候,两个文本框会抢focus(),但是屏幕
只允许一个焦点啊,这就造成了无限次循环,所以我把focus()给注释掉了;
我的本意是在onblue的时候就验证,不是在最后提交的时候,之前让文本框获得焦点也是为了阻止提交按钮提交空数据,注释了focus()我最后提交的时候,空文本框中的数据还是提交到服务器了。我需要的解答:如何在onblue的时候很快验证,并把验证的结果让提交按钮也知道,这样提交按钮可以根据各个文本框的验证结果阻止提交。(太啰嗦了,谢谢各位了)
试了一下,但是onchange必须要文本框输入变化的时候才能触发,我不输入内容就没反应
那我可不可以弄个全局变量state=true,让所有的结果都和state与,一个false就可以全局否定
<input type="text" onblur="isNull(this)" />
<script type="text/javascript">
var isRedExist = false;
function isNull(obj) {
value = obj.value;
if ((value.length==0||value.value=="")&&!isRedExist) {
obj.focus();
obj.style.background = "red";
isRedExist = true;
} else {
obj.style.background = "white";
isRedExist = false;
}
}
</script>