0

我是新来的轨道。请帮助我,因为我对在 rails 中使用 jquery 和 ajax 没有明确的了解。

我有一个任务复选框。我的数据库中有一个布尔字段 is_completed,默认设置为 false。选中复选框时,is_completed 的值应设置为 true,如果未选中,则应设置为 false。

任务表迁移

  t.boolean :is_completed, :default => false 

我的视图代码是

  <%= check_box_tag :is_completed %>

在我的 task.js

  $(':checkbox').change(function() {
     if (this.checked) {
   alert('completed')
      /* is_completed should be true */
     } 
     else {
  /* is_completed should be true */
    } 
   });
 });

请告诉我如何做到这一点。

4

3 回答 3

0

尝试这个:

$(':checkbox').click(function() { 
    var checked = $(':checkbox').prop('checked');
    if (checked)
        alert('yes');   
    else
        alert('no');
});
于 2013-10-29T10:40:39.363 回答
0

使用 jquery ajax:

$(':checkbox').change(function() {
   $.ajax({
    url: "/tasks/" + task_id,
    data: "&task[is_completed]=" + this.checked,
    dataType: "json",
    type: "PUT"
    });
 });
于 2013-10-29T11:15:17.907 回答
0

我创建了一个方法并从 jquery 传递值并使用 ajax 请求完成了工作。

在 task.js 中

  $(function () {
    $(':checkbox').change(function () {
      var task_id = jQuery('#task_id:hidden').val();
      complete_task(task_id);
   });


 function complete_task(task_id) {
$.ajax({    
  type: "GET",
  dataType: "html",
  url: "/tasks/"+task_id+"/complete_task",
  data: {"task_id": task_id},
  success: function(data) {
    $("#task_status").html(data);
  }
 });
 }
});

在任务控制器中

 def complete_task
@task =Task.find(params[:task_id])
@task.is_completed = true
@task.save
render :partial => 'task'
end
于 2013-10-30T09:52:31.907 回答