Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的Rails表单查找详细信息和发布到页面_Javascript_Ruby On Rails_Jquery_Coffeescript - Fatal编程技术网

javascript中的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

我不熟悉javascript/coffeescript/jQuery,但希望在Rails应用程序中实现以下内容。我应该做些什么来让它工作

  • 编辑表单的文本字段时,会调用一个函数,然后在表中查找值并在页面上的div中返回值
文本字段的id为
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

谢谢您-今晚我会试一试。