需要帮助使用Ruby on Rails中的hidden_??field将jQuery UI Slide
发布时间:2020-12-17 02:54:02 所属栏目:百科 来源:网络整理
导读:我是Rails的新手,对于非常基本的问题感到抱歉.我正在尝试在提交表单时将jQuery UI Slider的值存储在我的数据库中.对于text_area等其他元素,可以通过以下方式完成 %= f.text_area:my_score%或者与datepicker( using the jQuery Datepicker Rails plugin)的
我是Rails的新手,对于非常基本的问题感到抱歉.我正在尝试在提交表单时将jQuery UI Slider的值存储在我的数据库中.对于text_area等其他元素,可以通过以下方式完成
<%= f.text_area:my_score%>或者与datepicker( using the jQuery Datepicker Rails plugin)的日期:<%= f.datepicker:my_date%>.但是,我无法找到滑块的插件,从我的研究来看,最好的方法是使用hidden_??field.但是,我不知道获取滑块值并正确传递给表单的正确表示法.任何帮助将不胜感激. <div id="slider"></div> <input type="hidden" id="hidden"/> <%= f.hidden_field :my_score,:value => (what goes here?) %> 滑块的Javascript: <script> $(function() { $( "#slider" ).slider({ value:100,min: 5,max: 200,step: 5,slide: function( event,ui ) { $( "#amount" ).val( ui.value ); },change: function(event,ui) { $('#hidden').attr('value',ui.value); } }); $( "#amount" ).val( $( "#slider" ).slider( "value" ) ); }); </script> 解决方法
您的视图代码应该是:
<div id="slider"></div> <%= f.hidden_field :my_score %> 你已经有了一个隐藏的字段,不需要第二个字段.也不需要值,如果已经存在一个值,则rails会将其中一个(即编辑时). 至于你的javascript,你会有这样的改变事件: change: function(event,ui) { $('input#model_name_my_score').val(ui.value); } 我不知道隐藏字段的确切ID,但通常是model_name_field_name.你需要检查一下. 您需要做的最后一件事是在页面加载时将滑块设置为正确的值(假设您的表单有一个编辑版本,并且可能存在现有值). $( "#slider" ).slider({ value: $('input#model_name_my_score').val(), 如果您希望100在创建新对象时成为默认值,那么您应该在模型中设置100或者您想要设置默认值的位置,那么rails将使用“new”上的该值预先填充隐藏字段形成.如果你还没有办法处理默认值,你可以查看像https://github.com/FooBarWidget/default_value_for这样的宝石. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |