-
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 "增加" -%> <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个答案 按时间排序 按投票排序
-
采纳的答案
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(简称RoR或ROR)的基础书籍,旨在为初学者提供一个全面而深入的学习框架。本书由Peter Marklund编写,包含了五天课程的演示文稿和相关资料,覆盖了从安装到实际应用...
Ruby on Rails(RoR)是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程。在这个选题方向中,我们主要探讨的是与RoR相关的源代码分析和学习。源代码是...
Ruby on Rails(简称Rails或RoR)是一种开源的Web应用框架,用Ruby语言编写。它遵循MVC(Model-View-Controller)架构模式,能够帮助开发者快速构建高性能的应用程序。Rails以其简洁优雅的代码风格和强大的开发工具...
- **框架概述**:本书首先介绍了Ruby on Rails(RoR)框架的基本概念和历史背景,RoR是一个开源的Web应用框架,基于Ruby语言,采用了模型-视图-控制器(MVC)架构模式。 - **框架优势**:强调了RoR的简洁性、生产力...
10. **Ajax和JavaScript**:Rails与JavaScript库如jQuery集成良好,书中可能涉及了如何使用Ajax提升用户体验,以及如何利用Rails的Unobtrusive JavaScript(UJS)。 源码文件“Wrox - Professional Ruby on Rails ...
JavaScript 是一种客户端脚本语言,常用于网页和网络应用,它可以增加页面动态效果,实现用户输入验证,以及与服务器进行异步通信(AJAX),在本项目中,JavaScript 可能被用来处理表单提交、显示错误消息,甚至可能...
RoR框架也提供了如jQuery-ujs这样的库,方便与Rails的Unobtrusive JavaScript(UJS)集成。 7. Rake任务:Rake是RoR中的一个任务执行工具,类似Perl的Make或Python的setup.py。开发者可以定义自己的Rake任务,用于...
JavaScript 是网页开发中的主要脚本语言,用于处理用户交互、动态内容更新以及与服务器进行异步通信(AJAX)。在本项目中,JavaScript 可能被用于创建用户友好的界面,比如表单验证、动态加载数据、提示信息等。 **...
1. **模型(Model)**:这是业务逻辑的中心,与数据库交互,处理数据验证和业务规则。在Rails中,通常使用ActiveRecord,它是ORM(对象关系映射)的一部分,使得开发者可以用Ruby对象直接操作数据库。 2. **视图...
3. **jQuery**: 通常在Rails应用中,jQuery是默认的JavaScript库,用于DOM操作和AJAX请求。 4. **CoffeeScript**: 一种语法类似Ruby的JavaScript方言,可提高JavaScript代码的可读性。 5. **Action Cable**: Rails...
Ruby on Rails,简称RoR,是由David Heinemeier Hansson基于Ruby语言开发的一款开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,极大地简化了Web应用的开发过程。在这个名为"myRoR"的学习项目中,你将...
【标签】"JavaScript"表明这个课程可能也包含了JavaScript的应用,因为JavaScript是Web开发中的重要一环,尤其是在Rails中,它通常用于实现前端交互,如AJAX请求、表单验证和页面动态更新等。Rails集成了jQuery库,...
- **定义**: Ruby on Rails(简称 Rails 或 RoR)是一种基于 Ruby 语言的 Web 应用开发框架,采用 Model-View-Controller(MVC)架构模式。 - **特点**: - 遵循“约定优于配置”原则,简化了开发流程。 - 支持敏捷...
Ruby on Rails(RoR)是一个流行的开源Web应用框架,它遵循MVC(模型-视图-控制器)架构模式,使得开发高效且简洁。在Rails中,开发者可以利用Ruby语言的强大特性和其对DRY(Don't Repeat Yourself)原则的强调,来...
JavaScript,作为Web开发的重要组成部分,通常与RoR一起使用,通过AJAX(异步JavaScript和XML)实现页面的部分刷新,提升用户体验。在RoR中,可以使用如jQuery、React或Vue.js等库或框架来增强前端功能。 在"I-am-...
服务器端的Ruby on Rails处理登录验证逻辑,确保数据的安全性,而客户端的Ember.js则负责提供用户友好的界面和流畅的用户体验。 【标签】:“Ruby” Ruby标签表明了该项目的主要编程语言。Ruby是一种面向对象的...
在改造之前,FreeWheel的前端架构主要基于Rails框架,并采用了RoR (Ruby on Rails) 开发模式。该系统已经经历了超过十年的发展历程,拥有20多个产品模块,共计1200多个页面。整个项目包含了约60余万行代码,其中近20...
该框架融合了多种优秀的设计理念和技术,如 Struts 的 Action 思想、JSP 的 TagLib(标签库)、Ruby on Rails (RoR) 的 ORM 映射和 ActiveRecord 模式。 ### 2. ThinkPHP 的设计理念与目标 - **设计理念**:...