iteye_1222
iteye_1222
2008-06-30 22:57

ROR rails ajax 数据的提交验证与添加问题

已采纳

研究rails也有一段时间了,最近使用其开发一个简单的报名系统,其中遇到了一些技术上面的问题.
整个页面分成两个部分:
1.已有条目的显示(格式如下)
[quote]
题目详细信息----------------------------------删除(使用的AJAX技术动态页面删除)
.........................................................................
[/quote]

2.一个表单
[quote]
用于增加条目信息的

其中含有一个基本text字段(希望通过ajax技术验证)
和submit
[/quote]

提交过程是:
如果提交则在服务器端验证输入字段如果为空,则在text后面显示一条红字提示错误,如果提交正确则在上面的条目列表中增加一个条目.
我的思路是通过
[code="ruby"]
<%= form_remote_tag :url =>{:controller=>"enroll_info/edit_score",:action=>:add_score},
:complete => "eval(request.responseText)"
%>

信息:"12" -%>*提示错误

   


[/code]
在服务端根据输入信息进行判断然后回发一些javascript代码.
如果正确:
[code="ruby"]
new Insertion.Bottom('items',<%=render :partial=>'item' %>);
Element.hide('markerror');
[/code]
[code="ruby"]
#item:

:edit,:id=>item_a -%> "Element.remove('score#{item_a.id}') ;Element.hide('indicator')" , :loading => "Element.show('indicator')", :url=>{:action=>:destroy,:id=>item_a }, :confirm => '确定删除此条成绩?' -%>

[/code]

如果错误:
[code="ruby"]
new Element.show('markerror');
[/code]

现在的问题是在调用Insertion.Bottom('items',<%=render :partial=>'item' %>);时里面又有javascript代码,导致无法实现.

是否我的思路有问题,或者有一些转码方法?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • wodeg_2_sdd wodeg_2_sdd 13年前

    1.首先是增加条目的代码:
    [code="java"]<%= form_remote_tag :url =>{:controller=>"enroll_info/edit_score",:action=>:add_score}%> [/code]因为采用ajax的话,传回的JS会自己执行不需要eval

    2.另外在服务器端使用RJS:
    如果成功:
    page.insert_html :bottom,'items',:partial => 'item',:object => @item
    page['markerror'].hide();
    如果失败:
    page['markerror'].show();

    3.另外,RJS是可以直接写在控制器里的,如果像比较简单的rjs代码,就可以直写在控制器里,如果很复杂,就必须写在add_score.js.rjs文件里了

    像楼主的这个控制就可以这样写:

    respond_to do |format|
    format.js do
    if @item.save
    render :update do |page|
    page.insert_html :bottom,'items',:partial => 'item',:object => @item
    page['markerror'].hide()
    end
    else
    render :update do |page|
    page['markerror'].show();

      end
    

    end
    end
    end

    点赞 评论 复制链接分享

相关推荐