Здравствуйте, 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>>