【问题标题】:when sortable the table, the checkbox is automatically checked对表格进行排序时,会自动选中该复选框
【发布时间】:2012-12-23 00:18:14
【问题描述】:

我有这个页面:

有一个可排序的选项:将项目从下表移动到上表。此刻,我只有两个项目(每个表都有一个项目)。

上表包含工作人员尚未完成的任务,下表包含工作人员已完成的任务。

这个词:是/否表示任务是否完成。

我正在尝试做下一件事:

当用户将项目从下表移动到上表时,我希望自动选中复选框(因此它总是从“是”移动到“否”)。

这是我的index.html.erb(我使用best_in_place 以便在更改值时更新数据库):

<html>
<body>

<ul id="sortable1" class="connectedSortable"> 

  <% @tasks_worker_todo.each do |task| %>
        <li class="ui-state-default">
            <%= best_in_place task, :done, :classes => 'highlight_on_success', type: :checkbox, collection: %w[No Yes] %> | 
            <%= task.admin_mail %> | 
            <%= task.task %>
        </li>
  <% end %>
</ul>

<br><br>

<ul id="sortable2" class="connectedSortable">
  <% @tasks_worker_done.each do |task| %>
        <li class="ui-state-highlight">
            <%= best_in_place task, :done,:classes => 'highlight_on_success', type: :checkbox, collection: %w[No Yes] %> | 
            <%= task.admin_mail %> | 
            <%= task.task %>
        </li>
  <% end %>
</ul>

这是我的application.js

$(document).ready(function(){
 jQuery('#sortable1, #sortable2')
 .sortable(
 {'connectWith':'#sortable1',
 'dropOnEmpty':true,
 'scroll':true,
  items: "li:not(.emptyMessage)",
  receive: function(event, ui) {
         alert('moved');
         //hide empty message on receiver
         $('li.emptyMessage', this).hide();

         //show empty message on sender if applicable
         if($('li:not(.emptyMessage)', ui.sender).length == 0){
             $('li.emptyMessage', ui.sender).show();
             alert('alon');
         } else {
             $('li.emptyMessage', ui.sender).hide();
         }            
     }

  });
});

任何帮助表示赞赏!

更新:

这是 ruby​​ 生成的 HTML:

<!DOCTYPE html>
<html>

<head> 
<title>TODOLIST</title> 


<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/admin.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/scaffolds.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/tasksadmins.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/workers.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.purr.js?body=1" type="text/javascript"></script>
<script src="/assets/best_in_place.js?body=1" type="text/javascript"></script>
<script src="/assets/admin.js?body=1" type="text/javascript"></script>
<script src="/assets/myjquery.js?body=1" type="text/javascript"></script>
<script src="/assets/tasksadmins.js?body=1" type="text/javascript"></script>
<script src="/assets/workers.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script> 
<meta content="authenticity_token" name="csrf-param" />
<meta content="FZho6dNmNWjn82HB+MzhL/MtIm4s6F7JFiLVysPCREY=" name="csrf-token" /> 
</head>

<body>
<div id="right">

    <li><a href="/users/sign_out" data-method="delete" rel="nofollow">Sign out</a></li>

</div>
<p id="notice"></p>
<p id="alert"></p>
<center>
<html>
<body>


 <ul id="sortable1" class="connectedSortable"> 


    <li class="ui-state-default">
        <span class='best_in_place highlight_on_success' id='best_in_place_tasksadmin_1_done' data-url='/tasksadmins/1' data-object='tasksadmin' data-collection='["No","Yes"]' data-attribute='done' data-type='checkbox'>No</span> | 
        admin216@gmail.com | 
        feed the dog
    </li>
</ul>


<br><br>

<ul id="sortable2" class="connectedSortable">
    <li class="ui-state-highlight">
        <span class='best_in_place highlight_on_success' id='best_in_place_tasksadmin_2_done' data-url='/tasksadmins/2' data-object='tasksadmin' data-collection='["No","Yes"]' data-attribute='done' data-type='checkbox'>Yes</span> | 
        admin216@gmail.com | 
        feed the fish
    </li>
</ul>


</body>
</html>
</center>

</body>
</html>

附言我知道我有两个 body 和两个 html。我明天去订。

【问题讨论】:

  • 什么复选框?发布实时 html
  • 是的,能否请您发布 ruby​​ 生成的 HTML?
  • 是的,请稍候。谢谢你们!
  • 没有input[type="checkbox"] 假设您正在使用插件来模拟复选框。需要使用插件 API 来管理更改。可以尝试在跨度上触发clcik
  • 这就像复选框,你看到表任务的“否/是”这个词了吗?我可以按这个词:“是”,它会变成“否”..

标签: javascript jquery ruby-on-rails checkbox


【解决方案1】:

receive 处理程序中试试这个:

被移动的元素是ui.item

 ui.item.find('span').click();

【讨论】:

  • 多么伟大的国王!你今天帮了我两次。谢谢!祝你一切顺利!谢谢!
猜你喜欢
  • 2017-08-28
  • 2021-03-28
  • 2015-12-10
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多