0

私はレールが初めてです。レールでの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 リクエストを使用して処理を完了しました。

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);
  }
 });
 }
});

tasks_controllerで

 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 に答える
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 に答える