Re[11]: Disable buttons
От: mogadanez Чехия  
Дата: 20.04.06 06:49
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>Здравствуйте, mogadanez, Вы писали:


M>>
M>>        private void Page_Load(object sender, System.EventArgs e)
M>>        {
M>>            Button1.Attributes["onclick"] = "if (typeof(Page_ClientValidate) == 'function') { Page_ClientValidate();if (!Page_IsValid) return false; }; var self = this; window.setTimeout( function (){self.disabled = true;}, 10 );";
M>>        }
M>>


OE>здесь наверно должно быть Button2.Attributes иначе непонятно зачем нужен Button2 в примере

по начальной задумке опечатка тут
 var btn = document.getElementById("<%=Button2.ClientID%>");


OE>(кстати, странный эффект получается, если оставить как есть — по нажатию на Button1 серятся все три кнопки сразу )

хм... я такого не наблюдаю.


OE>В IE6 все три метода функциклируют как надо, в FireFox (1.5.0.2) function on_load() срабатывает, btn находится, но все равно Button1 не disable-ся Кстати зачем нужно писать


Ага... в ASPNET 1.1 клиентская валидация работает только на IE . такой вариант вроде везде работает

<script>
        var root_ = this;
        function on_load()
        {
        var btn = document.getElementById("<%=Button2.ClientID%>");
        var old_onclick_handler = btn.onclick;
        btn.onclick = function ()
            {
            if ( old_onclick_handler )
                old_onclick_handler();
            
            if ( "Page_IsValid" in  root_ ) 
                {                
                if ( Page_IsValid )
                    window.setTimeout( function (){btn.disabled = true;}, 10 );
                else 
                    return false;
                }
            else
                window.setTimeout( function (){btn.disabled = true;}, 10 );
            }
        }
    </script>



OE>
OE>var btn = document.getElementById("<%=Button1.ClientID%>");
OE>


потому что енопка может лежать в каком нибудь NamingContainer'e например Repiter'e или UserControl
тогда ее ID на клиентской стороне будет _ctl0_Button1
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.