表单提交和返回值(远程:true)-rails方式?

Gre*_*iez 1 javascript ruby ajax

我正在尝试使用remote: true制作一个表单,所以它运行良好,但我无法返回结果,他们的rails方法可以轻松做到这一点吗?我在哪里可以得到我的返回值?我的 javascript 水平很低,我只有 jquery :-(

我的表格:

<%= form_tag(test_step2_path, method: :get, remote: true, id: 'ttform', 'data-type' => :json) do %>
Run Code Online (Sandbox Code Playgroud)

在我的 JavaScript 中:

ret = document.getElementById('ttform').submit();
Run Code Online (Sandbox Code Playgroud)

和我的控制器:

def step2
respond_to do |format|
  format.html {
    puts ('*************** result1 *************** ')
    return  1
  }
  format.js {
    puts ('*************** result2 *************** ')
    return  1
  }
end
Run Code Online (Sandbox Code Playgroud)

结尾

Ps:我也不知道为什么,调用的是我的控制器中的 html 部分,而不是 json

Shi*_*zur 5

您应该将方法从 更改:get:post。另请注意,目前您的回应不是:format.json而是:format.js

在操作中您可以使用:(render json: {error: true}或任何其他 json),

javascript 应该看起来像这样:

$(document).on("ajax:complete", "#ttform", function(status, response){
    response = JSON.parse(response.responseText); 
    if (response.error) 
        // error behavior 
    else 
        // success behavior 
})
Run Code Online (Sandbox Code Playgroud)