javascript - Jquery Ajax函数问题

标签 javascript ajax ruby-on-rails-3 jquery

我需要一些关于 jquery 的帮助,它应该完成我们的 Rails3 应用程序中的任务。感谢这里的其他人,我有一个复选框,单击该复选框后,应该将任务状态标记为已完成。

在我的 Rails 代码中,我有这个;

<%= check_box_tag 'complete_task_1', '', false, { 'href' => completed_task_path(task.id) } %>

在我的 application.js 中,我是这样开始的:

 $('#complete_task_1').click(function() {
  $.ajax({
    url: $(this).data('href'),
    type: 'post',
    dataType: 'html',
    success: function(data, textStatus, jqXHR) {
        $('#thing').css("color","red");
        alert ('yabadabadoo');
    }
  });
});

这给了我一个错误 - 没有与/tasks 匹配的路由

为了测试,我将网址替换为:

tasks/4/complete

这切换了数据库中的状态,但没有刷新页面。因此我有两个问题:

  1. 上面的网址/函数有什么问题?
  2. 我可以添加什么以使任务从页面消失而无需重新加载?

--更新--

尝试按照下面的 @darin-dimitrov 建议使用代码,但我从我的应用程序中注销...开发日志中显示的错误是:

Started POST "/tasks" for 127.0.0.1 at 2011-07-16 13:27:32 +0100
  Processing by TasksController#create as HTML
  SQL (143.6ms)  describe `roles_users`
  User Load (0.5ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
  SQL (0.2ms)  BEGIN
  SQL (0.6ms)  COMMIT
Completed   in 454ms

看起来它仍然没有得到正确的网址。我也应该使用 POST 吗?

最佳答案

试试这个:

{ 'data-href' => completed_task_path(task.id) }

然后:

url: $(this).data('href')

应给出正确的网址(tasks/4/complete)。

或者,如果您不使用 data- 前缀,您可以使用以下内容:

url: $(this).attr('href')

但由于 href 不是复选框上的有效属性,第一个解决方案似乎更好。

关于javascript - Jquery Ajax函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717274/

相关文章:

javascript - jQuery Ajax 方法成功,但没有收到数据

javascript - 使用 AngularJS 在 select 中创建带有空字符串的空白选项

javascript - window.opener.location 在 IE 中不起作用

php - 基于开关切换在 WooCommerce Checkout 中添加自定义折扣

javascript - 带有 javascript_include_tag 的 Rails 3.2.8 引擎中的 ExecJS::RuntimeError

mysql - 运行SQL语句时出错

ruby-on-rails - Ruby/Rails - 为可变数量的单元格动态创建一个表

javascript - Sage 和 Google 图表中的纵横比

php - ReCaptcha 不接受任何字符串

jquery - 在执行绘图数据的 jquery ajax 请求时显示等待图像