*_field_tag にオプションを指定する
久々に Railsに触って、ずいぶんといろんなことを忘れているので、そうした Tipsを記録しておきます。
text_field_tag と password_field_tag
text_field_tag と password_field_tag にフォーカスが移ったら、フィールドの背景色を変えるようにしたい。
<% focus = {:autocomplete => 'off', :onfocus => "this.style.background='#ffc';", :onblur => "this.style.background='#fff';"} %> <% form_tag session_path do %> <%= text_field_tag 'login', @login, focus %> <%= password_field_tag 'password', nil, focus %> <% end %>
メモ
def text_field_tag(name, value = nil, options = {}) def password_field_tag(name = "password", value = nil, options = {})
なんでメモしておこうと思ったかというと、オプションを指定するときに valueを忘れてしまい、valueにオプションの文字列が入ってしまったから。value = nil でも忘れないこと。
その他
「:onfocus」と「:onblur」は忘れがち。
背景色を変えるのは、"this.style.background"。
<body onload="">が使えないときは、<script type="text/javascript">window.onload=function(){document.getElementById('login').focus();}</script>で OK。