在 Ruby 代码的 TextField 中,我想在模糊事件中检查指定的类是否被应用。请建议一些技术或方法。下面给出了我使用的示例代码。
TextField 的 Ruby 代码::
<%=f.text_field :Username, :size=>4, :tabindex=>2, :class=>class_name,
:autocomplete => "off", :onblur=> $$$$$ %>
假设 class_name:'changeView' 应用于上面的文本字段,那么我必须检测这个特定的类并替换为另一个类,如 'changeExtraview'。通过使用任何 javascript,我们可以替换该类名,但建议您是否有更好的选择。
谢谢
最佳答案
只是一个猜测的答案...
所以你的 class_name
可能包含值 changeView
,如果在这种情况下,您想替换 changeView
类名到changeExtraview
,对吧?
如果是,那么下面应该没问题:
<%=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 端使用绑定(bind)会更好。虽然很久以前的答案了,但我决定再次更新答案:
<%= 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 %>
在你的布局文件中,
关于javascript - ROR + 从文本字段中检测类名并将其替换为另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4311413/