更新表格中的布尔单元格

时间:2013-02-05 09:03:40

标签: javascript html ruby-on-rails ajax

我有一个表单,我想在用户按下提交按钮时更新show_msg参数(它是一个布尔参数)。如果用户选中了该框并按提交,我想将其设置为TRUE。否则:FALSE。

所以我的主html有一个弹出窗口。在这个弹出窗口中,我写了我的表格。 (我应该在'action'中写什么?我只需关闭此弹出窗口):

<form name="input" action="#" method="post">
   <input type="checkbox" id="mycheckbox">Don't show me again<br>
   <input type="submit" id="Submit">
</form> 

这是我的javascript:

$("#submit").click(function() {
   $.ajax({
     ## the url is the controller
     url: '/welcome',
     type: 'PUT',
     data: {show_msg: $("#mycheckbox").is(":checked")}
   });
});

这是我的控制者:

class WelcomeController < ApplicationController

def update
    @user = User.find(params[:id])

    respond_to do |format|
        if @user.update_attributes(params[:show_msg])
            format.html { redirect_to @user, notice: 'You will never see this message again.' }
            format.json { head :no_content }
        end
    end
end

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:2)

使用Rails form_for标记构建表单。

然后,不要触发提交按钮上的事件,而是触发表单提交。

最后,在您$.ajax call中,对于url属性,从表单操作属性中检索好的网址。

有关信息,使用表单标记,您可以添加remote: true选项。然后在ajax:successajax:error

上绑定一个事件

答案 1 :(得分:1)

如果JavaScript失败,请将操作设置为将处理提交数据的服务器端进程的URL。

另请参阅Progressive EnhancementUnobtrusive JavaScript