javascript中的Rails表单查找详细信息和发布到页面
我不熟悉javascript/coffeescript/jQuery,但希望在Rails应用程序中实现以下内容。我应该做些什么来让它工作javascript中的Rails表单查找详细信息和发布到页面,javascript,ruby-on-rails,jquery,coffeescript,Javascript,Ruby On Rails,Jquery,Coffeescript,我不熟悉javascript/coffeescript/jQuery,但希望在Rails应用程序中实现以下内容。我应该做些什么来让它工作 编辑表单的文本字段时,会调用一个函数,然后在表中查找值并在页面上的div中返回值 文本字段的id为personNumber,我希望它在People表中查找与该值相关联的名称,并将其发布到id为persondetails的div页面中 $ -> $("#personNumber").focusout(show_message) show_message
- 编辑表单的文本字段时,会调用一个函数,然后在表中查找值并在页面上的div中返回值
personNumber
,我希望它在People
表中查找与该值相关联的名称,并将其发布到id为persondetails
的div页面中
$ -> $("#personNumber").focusout(show_message)
show_message = -> $("#persondetails").html("Name will go here");
您只需在现有的基础上添加:
$ ->
$('#personNumber').focusout(show_message)
show_message = ->
id = encodeURIComponent($('#personNumber').val())
$.ajax
url: '/path/to/your/controller/' + id + '/name'
type: 'get'
success: (data) ->
$('#persondetails').html(data.name)
error: ->
# Do something sensible
然后将/path/to/your/controller/:id/name
路由到一个类似以下的控制器方法:
def your_method
#... look up params[:id] and leave the person in `person`
if(person)
render :json => { :name => person.name }, :status => :ok
else
render :json => { :msg => 'some error message' }, :status => :not_found
end
end
$ ->
$('#personNumber').focusout(show_message)
show_message = ->
$.ajax
url: '/path/to/your/controller'
type: 'get'
data: { id: $('#personNumber').val() }
success: (data) ->
$('#persondetails').html(data.name)
error: ->
# Do something sensible
如果您希望能够根据ID以外的其他内容查找名称,则可以添加如下灵活性:
def your_method
#... look up params[:id] and leave the person in `person`
if(person)
render :json => { :name => person.name }, :status => :ok
else
render :json => { :msg => 'some error message' }, :status => :not_found
end
end
$ ->
$('#personNumber').focusout(show_message)
show_message = ->
$.ajax
url: '/path/to/your/controller'
type: 'get'
data: { id: $('#personNumber').val() }
success: (data) ->
$('#persondetails').html(data.name)
error: ->
# Do something sensible
然后将/path/to/your/controller
路由到如上所述的控制器方法,并向your_方法
添加多一点逻辑,以便能够根据可能是参数的其他内容找到人
您可能还需要添加一条“正在加载…”消息。您可以在调用$之前显示一个“加载…”
。ajax
并将其隐藏在$的完成回调中。ajax
谢谢您-今晚我会试一试。