背景:
阅读新闻

解决requiredfieldvalidator onclientclick调用冲突问题

  作者: 今日评论: [字体: ]

文章1:
From:http://www.cnblogs.com/firstyi/archive/2006/12/26/604216.html

JS script

function ConfirmMe()
{
   return confirm("Do you want to proceed?");
}

ASPX

<asp:TextBox id="txtName" runat="server"/>
<asp:Button id="btnSubmit" OnClientClick="return ConfirmMe()" Text="Submit" runat="server"/>


Well, that is pretty straightforward. BUT, it goes weird when you have a validator control (eg. RequiredFieldValidator) that is used to validate the "txtName" textbox server control. For instance,


<asp:TextBox id="txtName" runat="server"/>

<asp:RequiredFieldValidator id="rq1" ControlToValidate="txtName" ErrorMessage="Name cannot be blank" Display="Dynamic" runat="server"/>

<asp:Button id="btnSubmit" OnClientClick="return ConfirmMe()" Text="Submit" runat="server"/>

Whenever you press the button with no textbox value, the client-side confirmation dialog will be invoked first before the validator message is able to show up. This isn't what we expected it to behave. I tried several ways to overcome this problem, including using CLIENT CALLBACK, disabling the CauseValidation, but it failed. Finally, I was able to find a solution by adding JUST ONE line in the JS script.


function ConfirmMe()
{
   if(Page_ClientValidate())
      return confirm('Do you want to proceed?');
      Page_BlockSubmit=false;  //当页面中有其他不需要验证的按钮或下拉框时一定要加上这句话,否则其他下拉框第一次提交时不会触发后台代码
   return false;
}
 

 

文章2:
From:http://www.dotblogs.com.tw/puma/archive/2008/03/26/2313.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ButtonConfirm2.aspx.cs" Inherits="ButtonConfirm2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>未命名頁面</title>
</head>
<body>
    <form id="form1" runat="server" onsubmit="if (Page_ValidationActive && !confirm('確定送出嗎?')) return false;">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1"
            ErrorMessage="不可為空白"></asp:RequiredFieldValidator>
        <br />
        <asp:Button ID="Button2" runat="server" Text="送出" />
    </div>
    </form>
</body>
</html>
 

来源:
录入日期:[2010/02/01 14:13:00]
收藏 推荐 打印 | 录入:mikebai | 阅读:
文章评论      
正在加载评论列表...
评论表单加载中...