Проблема с событием OnClientClick кнопки внутри UpdatePanel - PullRequest
1 голос
/ 01 марта 2010

я использую 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" />

когда я запускаю страницу и нажимаю кнопку, дальнейшая обработка прекращается, просто кнопка ничего не нажимает ...

Ответы [ 2 ]

0 голосов
/ 09 июня 2010

посмотрите на источник вашей страницы, когда она появится в браузере. Посмотрите, что происходит с назначением OnClientClick. это переписано / перенаправлено? это должно быть довольно ясно в этот момент. Вы также можете пройти через такие инструменты, как Firebug в Firefox, инструменты для разработчиков IE8, инструменты для разработчиков Chrome или Visual Studio

0 голосов
/ 06 мая 2010

Попробуйте это:

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; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...