在Ruby Code的TextField中,我想在blur事件上检查是否应用了指定的类。请提出一些技巧或方法。以下给出了示例代码。
TextField ::
的Ruby代码 <%=f.text_field :Username, :size=>4, :tabindex=>2, :class=>class_name,
:autocomplete => "off", :onblur=> $$$$$ %>
假设class_name:'changeView'应用于上面的文本字段,那么我必须检测这个特定的类&amp;替换为另一个像'changeExtraview'。通过使用任何javascript,我们可以替换该类名称,但建议您是否有更好的选择。
由于
答案 0 :(得分:1)
只是一个猜测的答案......
因此,您的class_name
可能包含changeView
的值,如果是这种情况,您希望将changeView
类名替换为changeExtraview
,对吗? / p>
如果是,那么以下内容应该没问题:
<%=f.text_field :Username, :size=>4, :tabindex=>2, :class=>class_name.gsub(/changeView/, "changeExtraview"), :autocomplete => "off", :onblur=> $$$$$ %>
========================
另一次尝试:
<%=
f.text_field :Username, :size=>4, :tabindex=>2, :class=>class_name, :autocomplete => "off",
:onblur => "if($(this).hasClass('changeView')) {$(this).removeClass('changeView'); $(this).addClass('changeExtraview')}"
%>
========================
正如@Faisal指出的那样,在JS方面使用绑定会更好。虽然答案很久以前,但我决定再次更新答案:
<%= f.text_field :Username, :size => 4, :tabindex => 2, :class => class_name, :autocomplete => "off" %>
在任何方面(我在本例中使用content_for),添加以下js代码:
<%= content_for :javascripts do %>
<script type="text/javascript">
jQuery(document).ready(function($) {
$("<%= class_name %>").bind("blur", function() {
var $this = $(this);
if ($this.hasClass('changeView')) {
$this.removeClass('changeView');
$this.addClass('changeExtraView');
}
});
});
</script>
<% end %>
请注意,上述代码要求您在布局文件中使用<%= yield :javascripts %>