.net2.0验证控件失效?是什么原因啊?

leo_boy 2007-07-28 02:00:34

http://jellykenny.com/jk/contact.aspx

这个页面用了4个验证控件,F5调试正常, 但是一发布网站后验证控件会失效。就算没填东西按提交表单,他还会提交。
...全文
885 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dhgdfhda 2009-11-08
  • 打赏
  • 举报
回复
前不久在aspx中放了个按钮控件:
<asp:Button ID="btnSend" runat="server" Text="发 送"
OnClientClick="return btnSend();" OnClick="btnSend_Click" />
然后又放了一个验证控件(RequiredFieldValidator),突然发现在界面提交时,验证控件失效了。

后来在看页面源文件时才发现,当页面有RequiredFieldValidator时,会对所有button加上CausesValidation="True"的属性 ,这样就会默认在提交时调用ASP.Net自带的Page_ClientValidate()对控件进行验证,但是我的button已经有一个OnClientClick事件,服务器则只执行一个事件,这样就导致验证控件的失效。

修改后代码:
<asp:Button ID="btnSendB" runat="server" Text="发 送" OnClientClick="if(Page_ClientValidate()) {return btnSend();} else{return false;}" OnClick="btnSend_Click" />.
这样两个事件都能被执行。
0 0 0
(请您对文章做出评价)
dhgdfhda 2009-11-08
  • 打赏
  • 举报
回复
前不久在aspx中放了个按钮控件:
<asp:Button ID="btnSend" runat="server" Text="发 送"
OnClientClick="return btnSend();" OnClick="btnSend_Click" />
然后又放了一个验证控件(RequiredFieldValidator),突然发现在界面提交时,验证控件失效了。

后来在看页面源文件时才发现,当页面有RequiredFieldValidator时,会对所有button加上CausesValidation="True"的属性 ,这样就会默认在提交时调用ASP.Net自带的Page_ClientValidate()对控件进行验证,但是我的button已经有一个OnClientClick事件,服务器则只执行一个事件,这样就导致验证控件的失效。

修改后代码:
<asp:Button ID="btnSendB" runat="server" Text="发 送" OnClientClick="if(Page_ClientValidate()) {return btnSend();} else{return false;}" OnClick="btnSend_Click" />.
这样两个事件都能被执行。
0 0 0
(请您对文章做出评价)
dhgdfhda 2009-11-08
  • 打赏
  • 举报
回复
前不久在aspx中放了个按钮控件:
<asp:Button ID="btnSend" runat="server" Text="发 送"
OnClientClick="return btnSend();" OnClick="btnSend_Click" />
然后又放了一个验证控件(RequiredFieldValidator),突然发现在界面提交时,验证控件失效了。

后来在看页面源文件时才发现,当页面有RequiredFieldValidator时,会对所有button加上CausesValidation="True"的属性 ,这样就会默认在提交时调用ASP.Net自带的Page_ClientValidate()对控件进行验证,但是我的button已经有一个OnClientClick事件,服务器则只执行一个事件,这样就导致验证控件的失效。

修改后代码:
<asp:Button ID="btnSendB" runat="server" Text="发 送" OnClientClick="if(Page_ClientValidate()) {return btnSend();} else{return false;}" OnClick="btnSend_Click" />.
这样两个事件都能被执行。
0 0 0
(请您对文章做出评价)
leo_boy 2007-07-29
  • 打赏
  • 举报
回复
还是不行啊。怎么办?
highwaydick 2007-07-29
  • 打赏
  • 举报
回复
<input type="button" name="submit" class="submit" id="submit" value="送出 Send It" onserverclick ="submit_ServerClick" runat="server" validationgroup="s1" />

其他验证控件也加上validationgroup="s1" , 要跟sumit一致
蝶恋花雨 2007-07-29
  • 打赏
  • 举报
回复
你把js验证控件 的名字改成,你打开网页生成的名字
例如 你的名称(Your Name)
这是生成页面的名字<input name="ctl00$ContentPlaceHolder1$MyMailControl$yourname"
你把验证的document.getElementsByTagName("INPUT"); 改成document.getElementsByTagName("ctl00$ContentPlaceHolder1$MyMailControl$yourname");

这是因为用户控件你拖动别的页面上,名字就变了,所以你要拖到页面上的名字验证才可以
leo_boy 2007-07-28
  • 打赏
  • 举报
回复
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="MailControl.ascx.vb" Inherits="ascx_MailControl" %>
<script type="text/javascript"><!--//--><![CDATA[//><!--
sfFocus = function() {
var sfEls = document.getElementsByTagName("INPUT");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onfocus=function() {
this.className+=" sffocus";
}
sfEls[i].onblur=function() {
this.className=this.className.replace(new RegExp(" sffocus\\b"), "");
}
}
var sfEls = document.getElementsByTagName("TEXTAREA");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onfocus=function() {
this.className+=" sffocus";
}
sfEls[i].onblur=function() {
this.className=this.className.replace(new RegExp(" sffocus\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfFocus);
//--><!]]></script>
<div id="contactform">
<p>
<label for="yourname" id="namelabel">你的名称(Your Name)<span>**<asp:RequiredFieldValidator
ID="RequiredFieldValidator1" runat="server" ControlToValidate="yourname" ErrorMessage="必填(required)"></asp:RequiredFieldValidator></span></label>
<input type="text" name="yourname" id="yourname" runat="server" />
</p>
<p>
<label for="youremail" id="maillabel">你的邮箱(Your Email)<span>**<asp:RequiredFieldValidator
ID="RequiredFieldValidator3" runat="server" ControlToValidate="youremail" ErrorMessage="必填(required)"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator
ID="RegularExpressionValidator1" runat="server" ControlToValidate="youremail"
ErrorMessage="无效邮箱(error)" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator></span></label>
<input type="text" name="youremail" id="youremail" runat="server" />
</p>

<p>
<label for="mailsubject">主题(Subject)</label>
<input type="text" name="mailsubject" id="mailsubject" runat="server" />
</p>
<p>
<label for="mailmessage" id="messagelabel">你的留言(Your Message)<span>**<asp:RequiredFieldValidator
ID="RequiredFieldValidator2" runat="server" ControlToValidate="mailmessage" ErrorMessage="必填(required)"></asp:RequiredFieldValidator></span></label>
<textarea name="mailmessage" id="mailmessage" rows="10" cols="30" runat="server" ></textarea>
</p>
<p>
<input type="button" name="submit" class="submit" id="submit" value="送出 Send It" onserverclick ="submit_ServerClick" runat="server" />
</p>
</div>

我写成用户控件的啊,怎么设置属性在同一个 group啊???
exiori 2007-07-28
  • 打赏
  • 举报
回复
比如服务器上没有脚本。。
zzlb0224 2007-07-28
  • 打赏
  • 举报
回复
没有在同一个 group
wanghu24 2007-07-28
  • 打赏
  • 举报
回复
不贴源代码,你是打算让我们猜你怎么编的吗
Jinglecat 2007-07-28
  • 打赏
  • 举报
回复
1.x ? 更新服务器 C:\Inetpub\wwwroot\aspnet_client
ltmltm123456 2007-07-28
  • 打赏
  • 举报
回复
有一个属性**你看是不是 FALSE 如果是的话 和你描述的效果是一样的
改为true

62,046

社区成员

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

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

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

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