IEでログインすらできなかった件

Widget 内にあるformをポストするときにはform_remote_tagを拡張したform_widget_tagというので、Ajax.Updaterを使っています。が。このままだと多重ポストに対応できないので、submit_tag を submit_widget_tag にして、submitが押された瞬間にthis.disabled=trueを設定していました。

<% form_widget_tag :action => ".." do -%>
..
..
<%= submit_widget_tag 'save' %>
<% end -%>
<form onsubmit="var params = Form.serialize(this); ... ; new Ajax.Updater(...)">
..
..
<input type="subimt" value="save" onclick="this.disabled=true;...">
</form>

Firefoxだとこれで問題なかったわけですが、IE 6.0だと、submit.onclickで、disabledにされるとonsubmitイベントハンドラが呼ばれない。。となんかIEのほうが正しい挙動に見えるのです、めずらしく。

というわけで、onsubmit の方に 自分に所属するsubmitタグを見つけて片っ端からdisabledにするスクリプトを1行挿入。