js 写一个仿RequiredFieldValidator的功能

XUXU_dragon 2009-07-17 04:21:22
想用js 写一个仿RequiredFieldValidator(非空验证)的功能,当用户在页面中没有输入就点击button时,在页面中出现提示,并且不激发button里的事件。

现在问题来了,如果我在前台button的onClick里件里写验证的话,它首先会执行js, 后台的事件不执行,要再点一次才激发后台的onClick事件。

我希望用户通过了验证才执行后台的程序,没有通过验证就不执行后台程序。这该怎么实现?

小弟对js 只是有点了解,希望各位大虾帮帮忙!
...全文
103 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
XUXU_dragon 2009-07-18
  • 打赏
  • 举报
回复
OK!自己终于解决了!

function check()
{
if(document.getElementById('<%=TextBoxname.ClientID%>').value=="")
{
alert('不能输入为空的内容!');
event.returnValue=false
}
}



结帐了!
XUXU_dragon 2009-07-18
  • 打赏
  • 举报
回复
用1楼的方法成功了一半,现先在它是先执行了onclientclick,再执行了OnClick代码,我希望如果用户输入的为空,那么OnClick事件也不触发,怎了么写?




function check()
{
if(document.getElementById('<%=TextBoxname.ClientID%>').value=="")
{
alert('不能输入为空的内容!');
///后台的ImageButton1_Click事件不激发,怎么写?
}

}


<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/AdminLogin/images/user_botton.gif" OnClientClick="check()" OnClick="ImageButton1_Click" />


XUXU_dragon 2009-07-18
  • 打赏
  • 举报
回复
OnClientClick="return(函数名())" 是在服务器端运行的还是在客户端运行的?
chen_ya_ping 2009-07-18
  • 打赏
  • 举报
回复
在Button中的OnClientClick中写你的js代码,因为是写执行OnClientClick代码,再执行OnClick代码的(后台.CS中的代码)。OnClientClick="return(函数名())"
owenxin26 2009-07-18
  • 打赏
  • 举报
回复
把button由type=submit换成type=button,只需要onclick事件,js里面判断条件根据需要执行form1.submit()就可以了。

PS:如果是随便练习写写js程序到无所谓,不过确实没必要重写一个validator,微软那个就很好用。
xuyiazl 2009-07-18
  • 打赏
  • 举报
回复
CustomValidator

RegularExpressionValidator
andrewsway 2009-07-18
  • 打赏
  • 举报
回复

<html>
<head>
<title> new document </title>
<script language="javascript">
<!--
function func() {
var obj = document.getElementById('text1');
if(obj.value.length == 0) {
document.getElementById('label1').style.display = 'block';
return false;
}
}
//-->
</script>
</head>

<body>
<form method="post" action="http://www.baidu.com">
<input type="text" id="text1" name="text1" ><span id="label1" style="display:none; color:#ff0000;">Required Field</span>
<br>
<input type="submit" value="submit" onclick="return func();">
</form>
</body>
</html>


上面是用静态写的模拟,你用的时候先看下,有几个地方需要改成服务器的

1、控件换成服务器控件。
2、服务器的button的onclick事件是指的cs文件中的事件,你该怎么写就怎么写,也就是onclick="button1_Click"这样,具体看你控件命名了。
3、服务器控件调用客户端js要用onclientclick,也就是说,需要把上面客户端提交按钮的触发验证事件的属性换成onclientclick="return func();"
常用的服务器端数据验证控件 RequiredFieldValidator(必须项); CompareValidator(与某值的比较); RangeValidator(范围检查); RegularExpressionValidator(模式匹配); CustomValidator(用户定义); ValidationSummary控件用于在网页、消息框或在这两者中内联显示所有验证错误的摘要 RequiredFieldValidator控件默认检查非空字符串(空格不算在内)。在RequiredFieldValidator关联的表单字段中输入任何字符,该RequiredFieldValidator控件就不会显示它的验证错误信息。 RequiredFieldValidator控件用于要求用户在提交表单前为表单字段输入值。使用Required- FieldValidator控件时,必须设置两个重要的属性: ControlToValidate——被验证的表单字段的ID。 Text——验证失败时显示的错误信息。 RangeValidator控件用于检测表单字段的值是否在指定的最小值和最大值之间。使用这个控件时,必须设置5个属性: ControlToValidate——被验证的表单字段的ID。 Text——验证失败时显示的错误信息。 MinimumValue——验证范围的最小值。 MaximumValue——验证范围的最大值。 Type——所执行的比较类型。可能的值有String、Integer、Double、Date和Currency。 CompareValidator控件可用于执行三种不同类型的验证任务。可使用CompareValidator执行数据类型检测。换句话说,可以用它确定用户是否在表单字段中输入了类型正确的值,比如在生日数据字段输入一个日期。 也可以用CompareValidator控件在输入表单字段的值和一个固定值之间进行比较。例如,要建立一个拍卖网站,就可以用CompareValidator检查新的起价是否大于前面的起价。 最后,可以用CompareValidator控件比较一个表单字段的值与另一个表单字段的值。例如,可以使用CompareValidator控件检查输入的会议开始日期值是否小于输入的会议结束日期值。 CompareValidator控件有6个重要的属性: ControlToValidate——被验证的表单字段的ID。 Text——验证失败时显示的错误信息。 Type——比较的数据类型。可能的值有String、Integer、Double、Date和Currency。 Operator——所执行的比较的类型。可能的值有DataTypeCheck、Equal、GreaterThan、Greater- ThanEqual、LessThan、LessThanEqual和NotEqual。 ValueToCompare——所比较的固定值。 ControlToCompare——所比较的控件的ID。 RegularExpressionValidator控件用于把表单字段的值和正则表达式进行比较。正则表达式可用于表示字符串模式,比如电子邮件地址、社会保障号、电话号码、日期、货币数和产品编码。 这个控件ValidationExpression中可以输入正则表达式来控制用户输入的字符,正则表达式的用处很多。具体可以在网上自己找一些常用的正则表达式看一下 只能输入数字:"^[0-9]*$"。   只能输入n位的数字:"^\d{n}$"。   只能输入至少n位的数字:"^\d{n,}$"。 。。。。。。。。。。。。。。。。。。。。。。。。。。。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧