mikebai.com

  • Home
  • dev
  • DotNET
  • M365
  • 搞笑
  • 杂七杂八
  • FocusDict
個人BLOG
it developer
  1. Main page
  2. DotNET
  3. Main content

解决requiredfieldvalidator onclientclick调用冲突问题

2010-02-01 98hotness 0likes 0comments

文章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>
        <

Tag: Nothing
Last updated:2010-02-01

mikebai

This person is a lazy dog and has left nothing

Like
< Last article
Next article >

COPYRIGHT © 2025 mikebai.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang