铁轨和jquery,onchange选择自动填充输入框

时间:2014-01-24 23:50:24

标签: jquery ruby-on-rails ajax

我正在使用rails和jquery。我有一个名为属性的选择框。我想在属性更改时自动填充输入字段。但是,如果我对rails函数进行ajax调用,它如何重定向并返回我想要的值?代码如下所示:

function fnGetValue() {
  return $.get(
    "/get_value",
    {attribute: attr}
  );
}

$(document).ready(function() {
  $("#attribute").change(function(event) {
    fnGetValue().done(function(result) {
      $("#value").val(result);
    });
  });
});

def get_value
  ret = get_from_db
  return ret
  #redirect_to :back
end

1 个答案:

答案 0 :(得分:1)

问题在于您的ruby代码。 return ret不会将ret值发送回您的浏览器。

为此,您应该使用render

def get_value
  ret = get_from_db
  render json: {data:ret}
end

更新

Json是在Javascript和任何其他技术之间共享数据的方式 它可以是数组([val1, val2]),也可以是字典({key:value, key2:value2}) 因此,在.done Javascript方法中result应该是数组或字典。

我相信get_from_db会返回数组,字典甚至是字符串和整数 因此,为了确保您的Javascript方法始终获得字典,我们将其封装到{data:ret}

然后在您的Javascript中,执行result.data将获得您正在寻找的价值。