比较来自世界各地的卖家的域名和 IT 服务价格

Page_ClientValidate 检查几次。

我有一个问题,摘要验证消息/警告/ 显示两次。 我无法理解的原因。

请帮忙。
这是代码


function validate// //javascript function
{
if /typeof/Page_ClientValidate/ == 'function'/
{
var isPageValid = Page_ClientValidate//;
if/isPageValid/
{
}
}
}

<asp:button id="btn1" onclientclick="validate//" runat="server" text="button" validationgroup="ContactGroup"></asp:button>
<asp:validationsummary displaymode="List" id="ValidationSummary1" runat="server" showmessagebox="true" showsummary="false" validationgroup="ContactGroup"></asp:validationsummary>
已邀请:

风见雨下

赞同来自:

问题是该功能 Page_ClientValidate 如果未指定输入参数,则拍摄输入参数 validationsummary 它触发了每组名称的一次。

在您的情况下,该函数有效两次:一次 groupname="ContactGroup" 再一次 groupname=""

你必须改变


var isPageValid = Page_ClientValidate//;





var isPageValid = Page_ClientValidate/''/;


如果您不想指定 ValidationGroup 或者如果要指定组的名称,则需要调用 Page_ClientValidate 通过以下方式:


var isPageValid = Page_ClientValidate/'ContactGroup'/;

冰洋

赞同来自:

嘿, there.First 所有你必须失去的 ValidationGroup="ContactGroup" 从按钮,因为它的验证组的可用性将首先调用页面上的扫描,然后是事件 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:textbox>
<asp:requiredfieldvalidator controltovalidate="txtMyBox" errormessage="Bad!" id="rfv1" runat="server" validationgroup="ContactGroup"></asp:requiredfieldvalidator>
<asp:button id="btn1" onclientclick="validate//" runat="server" text="button"></asp:button>
<asp:validationsummary displaymode="List" id="ValidationSummary1" runat="server" showmessagebox="true" showsummary="false" validationgroup="ContactGroup"></asp:validationsummary>

董宝中

赞同来自:

刚回来 false 从功能和变化 OnClientClick, 如下所示:


<asp:button id="btn1" onclientclick="return validate//;" runat="server" text="button" validationgroup="ContactGroup"></asp:button> 

function validate// //javascript function
{
if /typeof/Page_ClientValidate/ == 'function'/
{
var isPageValid = Page_ClientValidate//;
if/isPageValid/
{
}
}
return false;

}

君笑尘

赞同来自:

无需手动呼叫函数
Page_ClientValidate

, 如果您不想在返回传输尝试之外检查。

设置按钮
http://msdn.microsoft.com/en-u ... .aspx

true

. 这将导致验证。

窦买办

赞同来自:

您可以在不显示消息的情况下检查,使用以下代码段,然后使用变量 isPageValid:


if /Page_ValidationSummaries && Page_ValidationSummaries[0] && Page_ValidationSummaries[0].showmessagebox/ {
var showMessagesOption = Page_ValidationSummaries[0].showmessagebox;
Page_ValidationSummaries[0].showmessagebox = "False";
isPageValid = Page_ClientValidate//;
Page_ValidationSummaries[0].showmessagebox = showMessagesOption;
}

奔跑吧少年

赞同来自:

删除按钮以单击按钮,在此,它看起来会导致第二个检查。

小姐请别说爱

赞同来自:

删除事件 onclientclick 按钮这不是必需的

帅驴

赞同来自:

我知道这是一个旧的帖子,但这是一个可以更灵活的解决方案。 与其他用户建议一样,此解决方案接受默认验证控制的默认元素传输的验证组。 asp.net. 所以你不需要添加
OnClientClick="validate//"

在控制元件中 Button.


//Make sure the Page_ClientValidate function exists
if /typeof /Page_ClientValidate/ == "function"/ {
//Stash the old implementation in a temp variable
Page_ClientValidateOld = Page_ClientValidate;

//Create a new implementation and store it
//in Page_ClientValidate. Callers will now get
//this implementation.
Page_ClientValidate = function /validationGroup/ {
var isValid;

//Call the old implementation first…
isValid = Page_ClientValidateOld/validationGroup/;

//and then call our extension
if /!isValid/ {
// Do something
}

return isValid;
}
}


如果您想了解更多有关此方法的信息,我建议您在博客中观看这篇文章:
http://hyperthink.net/blog/int ... ript/
/

要回复问题请先登录注册