我有这样的表格:
<div id='relationship_<%= relationship.id %>'>
<% @value_id = "value_#{relationship.id}" %>
<% @div_slider_id = "slider_value_#{relationship.id}" %>
<% @form = "edit_relationship_#{relationship.id}"%>
<%= form_for(relationship, :remote => true) do |f| %>
<div id="<%= @div_slider_id %>"></div>
<%= f.hidden_field :value, :id => "#{@value_id}" %>
<% end %>
</div>
<script type='text/javascript'>
$(document).ready( function() {
$(function() {
$( "#<%= @div_slider_id %>" ).slider({
orientation: "horizontal",
range: "min",
value: <%= relationship.value || 1 %>,
min: 0,
max: 100,
change: function( event, ui ) {
$( "#<%= @value_id %>" ).val( ui.value );
如果用户移动滑块,表单将以HTML形式发送,而不是JS
$("#<%= @form %>").submit();
}
});
$( "#<%= @value_id %>" ).val( $( "#<%= @div_slider_id %>" ).slider( "value" ) );
});
});
</script>
当我移动滑块时,我如何以JS格式发送该表单?
感谢
将ID添加到表单提交:
<%= f.submit 'Ready', :id => "button_submit" %>
然后在JS中而不是这个:
$("#<%= @form %>").submit();
进行
$("#buttom_submit").click();
或者:尝试将数据类型添加到表单声明中:
<%= form_for(relationship, :remote => true, :html => { "data-type" => :js } ) do |f| %>
- 将relationship_form id设置为表单
2。更改代码中的这一行:
$("#<%= @form %>").submit();
至
$js.post("/relationship.js", $js("#relationship_form").serialize());