我有一堆文本框,我选择使用Jquery切换来显示和隐藏更改事件。
$(".category_check").change(function(){
//alert("abhiram")
// alert()
//alert($(this).data('category'))
$("#" + $(this).data('category')).toggle();
});
现在当我刷新时仍然检查框。勾选仍然保留在复选框中,并且应该切换的文本框不可见。当我取消选中该框时,它会再次出现。取消选中时显示的相反逻辑和选中时隐藏的逻辑单独发生在该复选框上。我做错了什么?
以下是与该脚本关联的rails应用程序视图中的代码
<label>Categories</label>
<% ClipCategory.all.each do |category| %>
<%= form_tag "update_amount", :remote => :true do %>
<div class="span12">
<div class="category_check pull-left" data-category="category_text_<%= category.id %>">
<%= check_box_tag "category", 1, ( @performer.clip_category_ids.include?(category.id) ? "checked" : false ), :class => "pull-left" %>
<%= label_tag "category", category.name, :class => "pull-left category_label" %>
</div>
<div id="category_text_<%= category.id%>" class="category_text">
<%= number_field_tag "amount", @amount, :class => "pull-left input-medium" %>
<%= hidden_field_tag "category_id", category.id %>
<%= submit_tag "Update" %>
</div>
</div>
<br />
<% end %>
答案 0 :(得分:0)
您需要触发更改事件
$(".category_check").change(function(){
//alert("abhiram")
// alert()
//alert($(this).data('category'))
$("#" + $(this).data('category')).toggle();
}).filter(':checked').change();