UpdatePanel 内按钮的 OnClientClick 事件出现问题

发布于 2024-08-23 06:32:03 字数 1152 浏览 4 评论 0原文

我使用类似 JavaScript 的

var TargetBaseControl = null;
window.onload = function()
{
   try
   {
      //get target base control.
      TargetBaseControl = 
        document.getElementById('<%= this.GridView1.ClientID %>');
   }
   catch(err)
   {
      TargetBaseControl = null;
   }
}
function TestCheckBox()
{              
   if(TargetBaseControl == null) return false;

   //get target child control.
   var TargetChildControl = "chkSelect";

   //get all the control of the type INPUT in the base control.
   var Inputs = TargetBaseControl.getElementsByTagName("input"); 

   for(var n = 0; n < Inputs.length; ++n)
      if(Inputs[n].type == 'checkbox' && 
         Inputs[n].id.indexOf(TargetChildControl,0) >= 0 && 
         Inputs[n].checked)
       return true;        

   alert('Select at least one checkbox!');
   return false;
}

代码,在更新面板内我有这样的代码:

<asp:Button ID="ButtonSave" runat="server" OnClick="ButtonSave_Click"     
    OnClientClick="javascript:return TestCheckBox();" Text="Save" />

当我运行页面并单击按钮时,不再进行进一步的处理,只需单击按钮就不会发生任何事情......

im using javascript like

var TargetBaseControl = null;
window.onload = function()
{
   try
   {
      //get target base control.
      TargetBaseControl = 
        document.getElementById('<%= this.GridView1.ClientID %>');
   }
   catch(err)
   {
      TargetBaseControl = null;
   }
}
function TestCheckBox()
{              
   if(TargetBaseControl == null) return false;

   //get target child control.
   var TargetChildControl = "chkSelect";

   //get all the control of the type INPUT in the base control.
   var Inputs = TargetBaseControl.getElementsByTagName("input"); 

   for(var n = 0; n < Inputs.length; ++n)
      if(Inputs[n].type == 'checkbox' && 
         Inputs[n].id.indexOf(TargetChildControl,0) >= 0 && 
         Inputs[n].checked)
       return true;        

   alert('Select at least one checkbox!');
   return false;
}

and inside the update panel i have code like

<asp:Button ID="ButtonSave" runat="server" OnClick="ButtonSave_Click"     
    OnClientClick="javascript:return TestCheckBox();" Text="Save" />

when i run the page and click the button then no more further processing just button has been click nothing happan......

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我喜欢麦丽素 2024-08-30 06:32:03

试试这个:

function TestCheckBox() 
{               
   var TargetBaseControl = null; 
   if(TargetBaseControl = document.getElementById('<%= this.GridView1.ClientID %>')){

   //get target child control. 
   var TargetChildControl = "chkSelect"; 

   //get all the control of the type INPUT in the base control. 
   var Inputs = TargetBaseControl.getElementsByTagName("input");  

   for(var n = 0; n < Inputs.length; ++n) 
      if(Inputs[n].type == 'checkbox' &&  
         Inputs[n].id.indexOf(TargetChildControl,0) >= 0 &&  
         Inputs[n].checked) 
       return true;         
   }
   alert('Select at least one checkbox!'); 
   return false; 
}

Try this:

function TestCheckBox() 
{               
   var TargetBaseControl = null; 
   if(TargetBaseControl = document.getElementById('<%= this.GridView1.ClientID %>')){

   //get target child control. 
   var TargetChildControl = "chkSelect"; 

   //get all the control of the type INPUT in the base control. 
   var Inputs = TargetBaseControl.getElementsByTagName("input");  

   for(var n = 0; n < Inputs.length; ++n) 
      if(Inputs[n].type == 'checkbox' &&  
         Inputs[n].id.indexOf(TargetChildControl,0) >= 0 &&  
         Inputs[n].checked) 
       return true;         
   }
   alert('Select at least one checkbox!'); 
   return false; 
}
昔日梦未散 2024-08-30 06:32:03

在浏览器中查看页面的源代码。
看看 OnClientClick 分配会发生什么。
它会被重写/重新路由吗?
那时应该很清楚了。
您还可以使用 Firefox 中的 Firebug、IE8 开发人员工具、chrome 开发人员工具或 Visual Studio 等工具逐步完成

look at the source of your page once it is in a browser.
see what happens with the OnClientClick assignment.
does it get rewritten/re-routed ?
it should be pretty clear at that point.
you can also step through with tools such as Firebug in firefox, IE8 developer tools, chrome developer tools, or visual studio

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文