最近做一个项目,由于对数据合法性,正确性要求非常严格,因为牵涉到钱钱的问题。用asp。net开发的,在前台页面用JS验证判断处理的,后天也验证处理了的。如果输入不合法,没有通过验证,则获得焦点,要求用户重新输入。但是在一个文本框获得焦点,用户没有输入,而选择另一个窗体输入时,页面就死掉了。开始以为是JS写的有问题。但是调试的时候把浏览器的JS报错功能开启后,运行页面,JS又没有报错。最后我确定多半是JS抢焦点,导致页面死掉。但是为了达到及时提醒验证。不知道该怎么处理,希望高手能够支招,谢谢了
解决方案 »
- 谁能帮帮我把这段代码由mootools转成jq的?
- 设置时间自动刷新button的disabled 属性
- 利用JS进行重新排序输出的问题。
- javascript怎么动态调用函数
- 麻烦!js创建快捷方式的问题?
- 求 获取 数据库的值 使用 jquery 来实现 动态级联 的案例
- 我快疯了,弟兄们:“对象为空或不是函数”,简单代码中得极其郁闷问题,在线等救!!!!!
- 如何用JAVASCRIPT判断文件是否存在???
- 关于JScript脚本语言的问题
- 如果要引用下拉列框中的值(select),其各个可先值该如何引用呢?
- jquery如何获取表格中的某个单元格内容
- web 基于RIA 表现层的UI组件与HTML的页面元素有什么联系和不同,忘高手指点
{
var objvalue = obj.value;
if(objvalue == "")
{
var CompanynameSpan = document.getElementById("CompanynameSpan");
CompanynameSpan.innerHTML="公司名不能为空!";
obj.focus();
return false;
}
else
{
var regstr = /^(\w|[\u4E00-\u9FA5])*$/;
if(!regstr.test(objvalue))
{
var CompanynameSpan = document.getElementById("CompanynameSpan");
CompanynameSpan.innerHTML="只能输入字母,汉字,数字,不能输入其他字符!";
obj.value = obj.value.replace(/(^\s+)|\s+$/g,"");;
obj.focus();
return false;
}
else
{
var CompanynameSpan = document.getElementById("CompanynameSpan");
CompanynameSpan.innerHTML="";
CheckCompanyNameIsExist(objvalue,"");
}
}
}
function CheckLoginName(loginname)
{
var regLoginName=/^[A-Za-z0-9]+$/;
if(loginname == "")
{
var loginnameSpan = document.getElementById("loginnameSpan");
loginnameSpan.innerHTML="用户登录名不能为空!";
document.getElementById("loginname").focus();
return false;
}
else
{
if(!regLoginName.test(loginname))
{
var loginnameSpan = document.getElementById("loginnameSpan");
loginnameSpan.innerHTML="用户登录名,只能为字母或者数字!";
document.getElementById("loginname").value ="";
document.getElementById("loginname").focus();
return false;
}
else
{
var loginnameSpan = document.getElementById("loginnameSpan");
loginnameSpan.innerHTML="";
isExistLoginName(loginname);
}
}
}
function Add_onclick()
{
var loginName = document.getElementById("loginname").value;
if(loginName == "")
{
var loginnameSpan = document.getElementById("loginnameSpan");
loginnameSpan.innerHTML="用户登录名不能为空!";
document.getElementById("loginname").focus();
return false;
}
else
{
var loginnameSpan = document.getElementById("loginnameSpan");
loginnameSpan.innerHTML="";
}
var trueName = document.getElementById("trueName").value;
if(trueName == "")
{
var trueNameSpan = document.getElementById("trueNameSpan");
trueNameSpan.innerHTML="真实姓名不能为空!";
document.getElementById("trueName").focus();
return false;
}
else
{
var trueNameSpan = document.getElementById("trueNameSpan");
trueNameSpan.innerHTML="";
}
var stime = document.getElementById("stime").value;
if(stime == "")
{
var stimeSpan = document.getElementById("stimeSpan");
stimeSpan.innerHTML="启用时间不能为空!";
document.getElementById("stime").focus();
return false;
}
else
{
var stimeSpan = document.getElementById("stimeSpan");
stimeSpan.innerHTML="";
}
var etime = document.getElementById("etime").value;
if(etime == "")
{
var stimeSpan = document.getElementById("stimeSpan");
stimeSpan.innerHTML="失效时间不能为空!";
document.getElementById("etime").focus();
return false;
}
else
{
var stimeSpan = document.getElementById("stimeSpan");
stimeSpan.innerHTML="";
}
var phone = document.getElementById("phone").value;
if(phone == "")
{
var phoneSpan = document.getElementById("phoneSpan");
phoneSpan.innerHTML="联系手机不能为空!";
document.getElementById("phone").focus();
return false;
}
else
{
var phoneSpan = document.getElementById("phoneSpan");
phoneSpan.innerHTML="";
}
var Companyname = document.getElementById("Companyname").value;
if(Companyname == "")
{
var CompanynameSpan = document.getElementById("CompanynameSpan");
CompanynameSpan.innerHTML="单位名称不能为空!";
document.getElementById("Companyname").focus();
return false;
}
else
{
var objvalue = document.getElementById("Companyname").value;
var CompanynameSpan = document.getElementById("CompanynameSpan");
CompanynameSpan.innerHTML="";
CheckCompanyNameIsExist(objvalue,"");
}
{
if(telNum == "" || telNum == null)
{
var phoneSpan = document.getElementById("phoneSpan");
phoneSpan.innerHTML="手机号码不能为空";
//document.getElementById("phone").focus();
return false;
}
else
{
if(/^13\d{9}$/g.test(telNum)||(/^15\d{9}$/g.test(telNum))||(/^18[0,5,6,7,8,9]\d{8}$/g.test(telNum)))
{
var phoneSpan = document.getElementById("phoneSpan");
phoneSpan.innerHTML="";
return true;
}
else
{
var phoneSpan = document.getElementById("phoneSpan");
phoneSpan.innerHTML="手机号错误,请重新输入";
document.getElementById("phone").value ="";
//document.getElementById("phone").focus();
return false;
}
}
}
function chkMoblileNum(telNum)
{
if(telNum == "" || telNum == null)
{
var LinkmoiSpan = document.getElementById("LinkmoiSpan");
LinkmoiSpan.innerHTML="手机号码不能为空";
//document.getElementById("Linkmoi").focus();
return false;
}
else
{
if(/^13\d{9}$/g.test(telNum)||(/^15\d{9}$/g.test(telNum))||(/^18[8,9]\d{8}$/g.test(telNum)))
{
var LinkmoiSpan = document.getElementById("LinkmoiSpan");
LinkmoiSpan.innerHTML="";
return true;
}
else
{
var LinkmoiSpan = document.getElementById("LinkmoiSpan");
LinkmoiSpan.innerHTML="手机号错误,请重新输入!";
document.getElementById("Linkmoi").value ="";
//document.getElementById("Linkmoi").focus();
return false;
}
}
}function SelectAccountType(num)
{
if(num == 3)
{
document.getElementById("DistributorCountDiv").style.display ="none";
}
else
{
document.getElementById("DistributorCountDiv").style.display ="";
}
}
function onloadText()
{
var date = new Date();
var mth = Number(date.getMonth())+1;
var st=date.getFullYear() + "-" + mth + "-" + date.getDate();
var ety = Number(date.getFullYear() + 10);
var et = ety +"-"+mth+"-"+ date.getDate();
document.getElementById("stime").value=st;
document.getElementById("etime").value=et;
}function checkTextvalue(obj)
{
var regstr = /^(\w|[\u4E00-\u9FA5])*$/;
var objvalue = obj.value;
if(objvalue != "" && objvalue != null)
{
if(!regstr.test(objvalue))
{
var textName = obj.name + "Span";
var textNameSpan = document.getElementById(textName);
textNameSpan.innerHTML="只能输入字母,汉字,数字,不能输入其他字符!";
obj.value = obj.value.replace(/(^\s+)|\s+$/g,"");;
obj.focus();
return false;
}
else
{
var textName = obj.name + "Span";
var textNameSpan = document.getElementById(textName);
textNameSpan.innerHTML="";
}
}
}
function DisTotalValue(obj)
{
changeTextvalueIsNull(obj);
var DisTotal = document.getElementById("DisTotal").value;
var distributionTota = document.getElementById("distributionTota").value;
if(parseInt(DisTotal) != DisTotal)
{
var fenpeiSpan = document.getElementById("fenpeiSpan");
fenpeiSpan.innerHTML="帐号总数,只能填大于0,小于等于" + distributionTota + "的整数!";
//alert("帐号总数,只能填大于0,小于等于" + distributionTota + "的整数!");
document.getElementById("DisTotal").value="0";
document.getElementById("DisTotal").focus();
return false;
}
else
{
if(parseInt(DisTotal) < 0)
{
var fenpeiSpan = document.getElementById("fenpeiSpan");
fenpeiSpan.innerHTML="帐号总数,只能填大于0,小于等于" + distributionTota + "的整数!";
//alert("帐号总数,只能填大于0,小于等于" + distributionTota + "的整数!");
document.getElementById("DisTotal").value="0";
document.getElementById("DisTotal").focus();
return false;
}
else
{
if(parseInt(distributionTota) < parseInt(DisTotal))
{
//alert("帐号总数不能大于剩余帐号数,剩余帐号个数:" + distributionTota );
var fenpeiSpan = document.getElementById("fenpeiSpan");
fenpeiSpan.innerHTML="帐号总数不能大于剩余帐号数,剩余帐号个数:" + distributionTota;
document.getElementById("DisTotal").value="0";
document.getElementById("DisTotal").focus();
return false;
}
else
{
var fenpeiSpan = document.getElementById("fenpeiSpan");
fenpeiSpan.innerHTML="";
}
}
}
}
function disCountValue(obj)
{
changeTextvalueIsNull(obj);
var DisTotal = document.getElementById("DisTotal").value;
var DisCount = document.getElementById("DisCount").value;
var distributorCount = document.getElementById("distributorCount").value;
if(parseInt(DisCount) != DisCount)
{
//alert("分销商个数,只能填大于0,小于等于" + distributorCount + "的整数!");
var fenpeiSpan = document.getElementById("fenpeiSpan");
fenpeiSpan.innerHTML="分销商个数,只能填大于0,小于等于" + distributorCount + "的整数!";
document.getElementById("DisCount").value="0";
document.getElementById("DisCount").focus();
return false;
}
else
{
if(parseInt(DisCount) < 0)
{
//alert("分销商个数,只能填大于0,小于等于" + distributorCount + "的整数!");
var fenpeiSpan = document.getElementById("fenpeiSpan");
fenpeiSpan.innerHTML="分销商个数,只能填大于0,小于等于" + distributorCount + "的整数!";
document.getElementById("DisCount").value="0";
document.getElementById("DisCount").focus();
return false;
}
else
{
if(parseInt(distributorCount) < parseInt(DisCount))
{
//alert("分销商帐号数不能能开剩余分销商数,剩余分销商数:" + distributorCount);
var fenpeiSpan = document.getElementById("fenpeiSpan");
fenpeiSpan.innerHTML="分销商帐号数不能能开剩余分销商数,剩余分销商数:" + distributorCount;
document.getElementById("DisCount").value="0";
document.getElementById("DisCount").focus();
return false;
}
else
{
if(parseInt(DisTotal) < parseInt(DisCount))
{
//alert("分销商帐号数不能能开剩余分销商数,剩余分销商数:" + distributorCount);
var fenpeiSpan = document.getElementById("fenpeiSpan");
fenpeiSpan.innerHTML="分销商帐号数不能能开剩余分销商数,剩余分销商数:" + DisTotal;
document.getElementById("DisCount").value="0";
document.getElementById("DisCount").focus();
return false;
}
else
{
var fenpeiSpan = document.getElementById("fenpeiSpan");
fenpeiSpan.innerHTML="";
}
}
}
}
} function changeTextvalueIsNull(obj)
{
var text = obj.value;
if(text == "" || text == null)
{
obj.value="0";
}
}
<div class="weizhi">
当前位置:用户管理 - <a href="#">添加新分销商</a>
</div>
<form name="AddFenXiaoShangProcess" method="post" action="AddFenXiaoShangProcess.aspx" id="AddFenXiaoShangProcess"> <div class="HTMLContent">
<table align="center" border="0" cellpadding="0" cellspacing="0">
<tr class="title">
<th colspan="4" align="center" valign="middle" style="height: 27px">
帐 号 信 息</th>
</tr>
</table>
<table align="center" border="0" width="100%" bgcolor="#5AAE18">
<tbody>
<tr>
<td align="right">
<span class="styleRed">*</span>登录名:
</td>
<td align="left" >
<input name="loginname" type="text" id="loginname" maxlength="50" style="ime-mode:disabled" onblur ="return CheckLoginName(this.value);" onkeypress="if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode> 90 && event.keyCode < 97) || (event.keyCode> 122 && event.keyCode < 127)) event.returnvalue = false;" />
<span id="loginnameSpan" style="color:Red; "></span>
</td>
<td align="right" style="height: 26px">
<span style="color: #ff0000">*</span>真实姓名:
</td>
<td align="left" style="height: 26px">
<input name="trueName" type="text" id="Text1" maxlength="50" onkeyup="checkTextvalue(this);" /><span id="trueNameSpan" style="color:Red; "></span>
</td>
</tr>
<tr>
<td align="right">
<span style="color: #ff0000">*</span>使用期限:
</td>
<td align="left">
<input name="stime" type="text" value="" id="stime" onfocus="WdatePicker({minDate:'%y-%M-#{%d}',skin:'whyGreen'})" />
至<input name="etime" type="text" id="etime" value="" onfocus="WdatePicker({minDate:'%y-%M-#{%d}',skin:'whyGreen'})" />
<span id="stimeSpan" style="color:Red; "></span>
</td>
<td align="right">
<span style="color: #ff0000">*</span>联系手机</td>
<td align="left">
<input name="phone" type="text" value="" id="phone" maxlength="11" onblur="return chkPhoneNum(this.value)" />
<span id="phoneSpan" style="color: red">例如:13999999999</span></td>
</tr>
<tr>
<td align="right">
<span style="color: #ff0000">*</span>账户状态:
</td>
<td align="left" >
<input id="Status" type="radio" name="Status" value="1" checked="checked" />启用
<input id="Status" type="radio" name="Status" value="0" />禁用 <span style="color: red">
设置当前帐号是否可用,默认是启用</span></td>
<td align="right">
<span style="color: #ff0000">*</span>扣点组:
</td>
<td align="left">
<select id="koudian" name="koudian">
<option value="">暂不设置此用户权限组</option>
<%
if (pointGroupList != null && pointGroupList.Count > 0)
{
for (int i = 0; i < pointGroupList.Count; i++)
{
%>
<option value="<%=pointGroupList[i].Id %>"><%=pointGroupList[i].Pname %></option>
<%
}
}
%>
</select>
</td>
</tr>
<tr>
<td align="right">
<span style="color: red">*</span>所属权限组:
</td>
<td align="left" colspan="3">
<select id="compteceGroup" name="compteceGroup">
<%
if (competenceGroupList != null && competenceGroupList.Count > 0)
{
if (competenceGroupList[0].Cgroup)
{
for (int i = 0; i < competenceGroupList.Count; i++)
{
if (competenceGroupList[i].Cgroup)
{
%>
<option value="<%=competenceGroupList[i].Id %>" selected="selected"><%=competenceGroupList[i].CName %></option>
<%
}
else
{
%>
<option value="<%=competenceGroupList[i].Id %>"><%=competenceGroupList[i].CName %></option>
<%
}
} if (competenceGroup != null)
{
%>
<option value="<%=competenceGroup.Id %>"><%=competenceGroup.CName %></option>
<%
}
%>
<option value="" >暂不设置此用户权限组</option>
<%
}
else
{
if (competenceGroup != null)
{
%>
<option value="<%=competenceGroup.Id %>" selected="selected"><%=competenceGroup.CName %></option>
<%
}
for (int i = 0; i < competenceGroupList.Count; i++)
{
%>
<option value="<%=competenceGroupList[i].Id %>"><%=competenceGroupList[i].CName %></option>
<%
}
%>
<option value="" >暂不设置此用户权限组</option>
<%
}
}
else
{
if (competenceGroup != null)
{
%>
<option value="<%=competenceGroup.Id %>" selected="selected"><%=competenceGroup.CName %></option>
<%
}
else
{
%>
<option value="" selected="selected">暂不设置此用户权限组</option>
<%
}
}
%>
</select>
</td>
</tr>
<td align="right">
<span style="color: #ff0000">*</span>账户分配类型:
</td>
<td align="left" colspan="3" >
<select id = "AccountType" name="AccountType" onchange="SelectAccountType(this.value);">
<%
if (model.accountType == 1)
{
%>
<option value="2" selected="selected">只能开一级分销商和采购商帐号</option>
<option value="3">只能开采购商帐号</option>
<%
}
else if (model.accountType == 2)
{
%>
<option value="3" selected="selected">只能开采购商帐号</option>
<%
}
else
{
}
%>
</select> (<span style="color: red">设置当前所开帐号能够开启的下级帐号类型</span>)
</td>
</tr>
<tr>
<td align="right">
<span style="color: #ff0000">*</span>账户分配数目:
</td>
<td align="left" colspan="3">
<div style ="float :left ;">
<div id="DistributionTotalDiv" style ="float:left ;">
分配下属帐号总数<input type="text" id="DisTotal" name="DisTotal" maxlength="5" value="0" style="width: 59px" onchange="return DisTotalValue(this);" />
</div> <div id="DistributorCountDiv" style="float:left">
其中分销帐号个数<input type="text" id="DisCount" name="DisCount" maxlength="5" value="0" style="width: 60px" onchange="return disCountValue(this);" />
</div>
</div>
<span id="fenpeiSpan" style="color:Red; "></span></td>
</tr>
<tr>
<td align="right">
<span style="color: #ff0000">*</span>账户剩余数目:
</td>
<td align="left" colspan="3">
<%
int dtCount = model.distributorCount - 1;
if (dtCount < 0)
{
dtCount = 0;
}
%>
<input type="hidden" id="distributorCount" name="distributorCount" value="<%=dtCount %>" />
<input type="hidden" id="distributionTota" name="distributionTota" value="<%=model.distributionTota - model.usedCount -1 %>" />
分销帐号剩余:<font color="red"><%=dtCount %></font>个
可用帐号剩余总数:<font color="red"><%=model.distributionTota - model.usedCount -1 %></font>个
</td>
</tr>
<tr>
<td align="right">
<span style="color: #ff0000">*</span>温馨提示:
</td>
<td align="left" colspan="3">
<span style="color: red">
分配下属帐号总数 要小于等于 可用帐号剩余总数 分销帐号个数 要小于等于 分销帐号剩余 </span>
</td>
</tr>
<%
System.Data.DataRow[] drs = getSpecialCompetenceList(); if (drs != null && drs.Length > 0)
{
%>
<input type="hidden" name="specialComCount" id="specialComCount" value="<%=drs.Length %>" />
<%
for (int i = 0; i < drs.Length; i++)
{
%>
<tr>
<td align="right" style="width: 180px">
<%=drs[i]["DictionaryName"].ToString()%>:
</td>
<td align="left" colspan="3">
<input type="checkbox" id="specialCom<%=i+1 %>" name="specialCom<%=i+1 %>" value="<%=drs[i]["DictionaryValue"].ToString() %>" /><%=drs[i]["DictionaryText"].ToString()%> <span style="color: red">*说明:</span><%=drs[i]["Beizhu"].ToString()%>
</td>
</tr>
<%
}
%>
<tr>
<td height="25" align="right">
温馨提示:</td>
<td height="25" align="left" colspan="3">
<span style="color: red">
特殊权限请谨慎处理,若因为特殊权限,而带来的一切损失,平台不承担任何责任。
<span id="Span1"></span>
</span>
</td>
</tr>
<%
}
%>
</tbody>
</table>
</div>
这个是真的哈,但是为了避免,有些用户,浏览器禁用JS,因此为了保险起见,JS验证和后天验证都要写。