0 0

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

研究rails也有一段时间了,最近使用其开发一个简单的报名系统,其中遇到了一些技术上面的问题.
整个页面分成两个部分:
1.已有条目的显示(格式如下)
引用

   题目详细信息----------------------------------删除(使用的AJAX技术动态页面删除)
   .........................................................................


2.一个表单
引用

用于增加条目信息的

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


提交过程是:
如果提交则在服务器端验证输入字段如果为空,则在text后面显示一条红字提示错误,如果提交正确则在上面的条目列表中增加一个条目.
我的思路是通过
<%= form_remote_tag :url =>{:controller=>"enroll_info/edit_score",:action=>:add_score}, 
				    :complete => "eval(request.responseText)"
 %>
<p>
    <span>信息:<%= text_field "score","mark",:maxlength=>"12" -%><span class="sysnotice">*</span><span id='markerror' style='display:none;color:red;'>提示错误</span>
</p>
<div class="alcenter">
    <%= submit_tag "增加" -%>&nbsp;&nbsp;&nbsp;<input type="reset" value="重置" />
</div>
</form>

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

#item:
<div class="item" id="score<%=item_a.id -%>">
    <label>
        <%=h(item_a.subject.name) %>:<%=h(item_a.mark) %>
    </label>
    <div align="right"><%= button_to '编辑',:action=>:edit,:id=>item_a -%>
        <%= link_to_remote '删除',
								:complete => "Element.remove('score#{item_a.id}') ;Element.hide('indicator')" ,
								:loading => "Element.show('indicator')",
								:url=>{:action=>:destroy,:id=>item_a },
								:confirm => '确定删除此条成绩?' -%>
    </div>
</div>


如果错误:
new Element.show('markerror');



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


是否我的思路有问题,或者有一些转码方法?
2008年6月30日 22:57

1个答案 按时间排序 按投票排序

0 0

采纳的答案

1.首先是增加条目的代码:

<%= form_remote_tag :url =>{:controller=>"enroll_info/edit_score",:action=>:add_score}%>   
因为采用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

2008年7月01日 09:46

相关推荐

    ruby on rails 101

    《Ruby on Rails 101》是一本介绍Ruby on Rails(简称RoR或ROR)的基础书籍,旨在为初学者提供一个全面而深入的学习框架。本书由Peter Marklund编写,包含了五天课程的演示文稿和相关资料,覆盖了从安装到实际应用...

    RoR选题方向—源代码

    Ruby on Rails(RoR)是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程。在这个选题方向中,我们主要探讨的是与RoR相关的源代码分析和学习。源代码是...

    Ruby.on.Rails.Enterprise.Application.Development

    Ruby on Rails(简称Rails或RoR)是一种开源的Web应用框架,用Ruby语言编写。它遵循MVC(Model-View-Controller)架构模式,能够帮助开发者快速构建高性能的应用程序。Rails以其简洁优雅的代码风格和强大的开发工具...

    Build.Your.Own.Ruby.on.Rails.Web.Applications.Feb.2007.pdf

    - **框架概述**:本书首先介绍了Ruby on Rails(RoR)框架的基本概念和历史背景,RoR是一个开源的Web应用框架,基于Ruby语言,采用了模型-视图-控制器(MVC)架构模式。 - **框架优势**:强调了RoR的简洁性、生产力...

    Wrox - Professional Ruby on Rails (Feb 2008)

    10. **Ajax和JavaScript**:Rails与JavaScript库如jQuery集成良好,书中可能涉及了如何使用Ajax提升用户体验,以及如何利用Rails的Unobtrusive JavaScript(UJS)。 源码文件“Wrox - Professional Ruby on Rails ...

    ror-codelit-landing:基于 ruby​​ on rails 的登陆页面

    JavaScript 是一种客户端脚本语言,常用于网页和网络应用,它可以增加页面动态效果,实现用户输入验证,以及与服务器进行异步通信(AJAX),在本项目中,JavaScript 可能被用来处理表单提交、显示错误消息,甚至可能...

    tisi-carbide-test:一个问题跟踪器,主要讲授一些Ruby on Rails概念

    RoR框架也提供了如jQuery-ujs这样的库,方便与Rails的Unobtrusive JavaScript(UJS)集成。 7. Rake任务:Rake是RoR中的一个任务执行工具,类似Perl的Make或Python的setup.py。开发者可以定义自己的Rake任务,用于...

    rails-url-shortener:用 Ruby on Rails 开发的个人 URL 缩短器

    JavaScript 是网页开发中的主要脚本语言,用于处理用户交互、动态内容更新以及与服务器进行异步通信(AJAX)。在本项目中,JavaScript 可能被用于创建用户友好的界面,比如表单验证、动态加载数据、提示信息等。 **...

    Sorry:我在 Rub on Rails 中的应用

    1. **模型(Model)**:这是业务逻辑的中心,与数据库交互,处理数据验证和业务规则。在Rails中,通常使用ActiveRecord,它是ORM(对象关系映射)的一部分,使得开发者可以用Ruby对象直接操作数据库。 2. **视图...

    sample_app:Ruby on Rails 教程的示例应用程序

    3. **jQuery**: 通常在Rails应用中,jQuery是默认的JavaScript库,用于DOM操作和AJAX请求。 4. **CoffeeScript**: 一种语法类似Ruby的JavaScript方言,可提高JavaScript代码的可读性。 5. **Action Cable**: Rails...

    myRoR:在 thinkful.com 学习 Ruby on Rails

    Ruby on Rails,简称RoR,是由David Heinemeier Hansson基于Ruby语言开发的一款开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,极大地简化了Web应用的开发过程。在这个名为"myRoR"的学习项目中,你将...

    myFirstApp:Ruby on Rails 的第一个应用程序

    【标签】"JavaScript"表明这个课程可能也包含了JavaScript的应用,因为JavaScript是Web开发中的重要一环,尤其是在Rails中,它通常用于实现前端交互,如AJAX请求、表单验证和页面动态更新等。Rails集成了jQuery库,...

    rail on ruby

    - **定义**: Ruby on Rails(简称 Rails 或 RoR)是一种基于 Ruby 语言的 Web 应用开发框架,采用 Model-View-Controller(MVC)架构模式。 - **特点**: - 遵循“约定优于配置”原则,简化了开发流程。 - 支持敏捷...

    sample-app:Rails教程样本应用程序

    Ruby on Rails(RoR)是一个流行的开源Web应用框架,它遵循MVC(模型-视图-控制器)架构模式,使得开发高效且简洁。在Rails中,开发者可以利用Ruby语言的强大特性和其对DRY(Don't Repeat Yourself)原则的强调,来...

    I-am-Programmer

    JavaScript,作为Web开发的重要组成部分,通常与RoR一起使用,通过AJAX(异步JavaScript和XML)实现页面的部分刷新,提升用户体验。在RoR中,可以使用如jQuery、React或Vue.js等库或框架来增强前端功能。 在"I-am-...

    Triplocal_landing_site:triplocal 的登陆页面项目

    服务器端的Ruby on Rails处理登录验证逻辑,确保数据的安全性,而客户端的Ember.js则负责提供用户友好的界面和流畅的用户体验。 【标签】:“Ruby” Ruby标签表明了该项目的主要编程语言。Ruby是一种面向对象的...

    架构创新与演进(解决方案专场)——FreeWheel在微服务架构下的前端改造实践 共39页.pdf

    在改造之前,FreeWheel的前端架构主要基于Rails框架,并采用了RoR (Ruby on Rails) 开发模式。该系统已经经历了超过十年的发展历程,拥有20多个产品模块,共计1200多个页面。整个项目包含了约60余万行代码,其中近20...

    ThinkPHP v1.0.0 开发人员指南

    该框架融合了多种优秀的设计理念和技术,如 Struts 的 Action 思想、JSP 的 TagLib(标签库)、Ruby on Rails (RoR) 的 ORM 映射和 ActiveRecord 模式。 ### 2. ThinkPHP 的设计理念与目标 - **设计理念**:...

Global site tag (gtag.js) - Google Analytics