Я использую Ruby on Rails для заполнения базы данных из формы, которая имеет несколько входных текстов или выбирает поля.Я использую AJAX, чтобы каждый раз, когда пользователь вносил изменения в любое поле ввода, все значения полей ввода автоматически учитывались, а некоторые другие поля результатов обновлялись.
Все отлично работает со следующим скриптом дляпервые 2 поля ввода, но я планирую иметь более 50 полей ввода, если не больше, и мне интересно, есть ли более разумный способ реализации моего сценария без явного определения отдельной функции для каждого поля.
Буду признателен за любую идею, как масштабировать мой сценарий, не повторяя одно и то же более 50 раз?
Это мой js
<script type="text/JavaScript">
$(function(){
$('.input_1_class').bind('change', function(){
$.ajax({
url: "<%= update_fields_projects_url %>",
data: {
input_1: $('.input_1_class').val(),
input_2: $('.input_2_class').val(),
}
});
});
$('.input_2_class').bind('change', function(){
$.ajax({
url: "<%= update_fields_projects_url %>",
data: {
input_1: $('.input_1_class').val(),
input_2: $('.input_2_class').val(),
}
});
});
});
</script>
, а это моя форма Ruby (упрощенно)
<%= form_for(@project, :html => {:name => "ProjectInfo"}) do |f|
field_set_tag "Customer Information" do %>
<div class="field">
<%= f.label :"Input 1" %>
<%= f.text_field :Input_1, {:class=>"input_1_class"} %>
<%= f.label :"Input 2" %>
<%= f.text_field :Input_2, {:class=>"input_2_class"} %>
<%= f.label :"Output 1" %>
<%= f.text_field :Output_1, {:id=>"output_1_id"} %>
</div>
<% end %>
<% end %>