16 javascript asp.net validation
问题是,验证摘要消息(警报)显示两次.我无法弄清楚原因.
请帮忙.这是代码
function validate() //javascript function
{
if (typeof(Page_ClientValidate) == 'function')
{
var isPageValid = Page_ClientValidate();
if(isPageValid)
{
}
}
}
<asp:Button ID="btn1" runat="server" OnClientClick="validate()" Text="button"
ValidationGroup="ContactGroup" />
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="List"
ShowMessageBox="true" ShowSummary="false" ValidationGroup="ContactGroup" />
Run Code Online (Sandbox Code Playgroud)
bas*_*gio 23
问题是函数Page_ClientValidate接受一个输入参数,如果你没有指定输入,那么validationsummary每个groupname触发一次.
在您的情况下,该函数触发两次:一次用于groupname ="ContactGroup",另一次用于groupname =""
你应该改变
var isPageValid = Page_ClientValidate();
Run Code Online (Sandbox Code Playgroud)
至
var isPageValid = Page_ClientValidate('');
Run Code Online (Sandbox Code Playgroud)
如果您不想指定ValidationGroup,或者如果要指定组名,则需要像这样调用Page_ClientValidate:
var isPageValid = Page_ClientValidate('ContactGroup');
Run Code Online (Sandbox Code Playgroud)
嘿那里.首先,您应该从按钮中松开ValidationGroup ="ContactGroup",因为其中的验证组将首先调用页面上的验证,然后是包含validate函数的OnClientClick事件,该函数将再次调用页面验证.
然后,您应该将验证组"ContactGroup"传递给Page_ClientValidate()函数,以便它知道要验证哪些控件,因为只需调用Page_ClientValidate()将验证所有控件,而不管其验证组如何(并且它可能会多次显示验证消息,取决于您拥有的验证组数量).
总之这样做:
function validate() //javascript function
{
if (typeof(Page_ClientValidate) == 'function')
{
var isPageValid = Page_ClientValidate('ContactGroup');
if(isPageValid)
{
//your custom code
}
}
}
<asp:textbox id="txtMyBox" runat="server"/>
<asp:requiredFieldValidator Id="rfv1" runat="server" ControlToValidate="txtMyBox"
ValidationGroup="ContactGroup" ErrorMessage="Bad!"/>
<asp:Button ID="btn1" runat="server" OnClientClick="validate()" Text="button"/>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="List"
ShowMessageBox="true" ShowSummary="false" ValidationGroup="ContactGroup" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
31552 次 |
最近记录: |