我正在改进RoR应用程序。在这个应用程序中有一个页面,用户可以在其中创建或编辑项目。此页面包含表单。在那个表单中有11个选项卡(使用javascript实现,我们在这里使用bootsrap' s tabbable)。表单控件分为11个选项卡。
出现问题:用户在第二或第三个标签页中提交包含错误数据的表单后,会显示相同的表单,并激活第一个标签页。
我需要解决这个问题。我不想使用客户端验证。所有验证都应在rails中完成。我也不想使用AJAX。
因此,如果用户在第5个选项卡中提交包含错误数据的表单,则在提交后必须显示第5个选项卡,并且应将表单错误消息放入第5个选项卡。我怎么能这样做?
答案 0 :(得分:1)
我认为问题是一个Javascript - how to load up validation errors in the correct tabs?
从我的角度来看,似乎Rails正在处理您发送的数据,并返回您的请求发送的原始页面。问题是这没有加载正确的标签,这是JS'责任(前端)
<强>建议强>
我个人会创建一个匿名函数来加载有错误的标签。您需要记住选项卡是所有HTML元素,并且Rails在包含错误的字段附近附加field_with_error
包装
我对Bootstrap tabs没有任何经验,但您可以这样做:
#app/assets/javascripts/application.js
$(function() {
$('#myTab .div_with_errors:first').tab('show')
});