我有一个表单,我想在用户按下提交按钮时更新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
任何帮助表示赞赏!
答案 0 :(得分:2)
使用Rails form_for
标记构建表单。
然后,不要触发提交按钮上的事件,而是触发表单提交。
最后,在您$.ajax call
中,对于url
属性,从表单操作属性中检索好的网址。
有关信息,使用表单标记,您可以添加remote: true
选项。然后在ajax:success
,ajax:error
等
答案 1 :(得分:1)
如果JavaScript失败,请将操作设置为将处理提交数据的服务器端进程的URL。