В моем Rails application.js У меня есть два javascripts, что они делают, это автопопуляция моей регистрационной формы. Первая основана на том, что попадает в мое текстовое поле emp_id, когда что-то помещается туда, и оно соответствует тому, что у меня есть в моей другой таблице, и оно вытаскивает имя пользователя и person_id и помещает их в соответствующие текстовые поля. Теперь у меня есть мой второй javascript, который смотрит на данные в user_id text_field, потому что теперь с первого javascipt у него есть данные в нем. Но единственный способ получить эту вторую работу - это изменить число и нажать вкладку, тогда она будет заполните мой менеджер_first_name text_field ... Является ли это способом, чтобы первый javascipt вытащил из себя постоянные данные, а второй реагировал на данные автоматически, вне зависимости от меня, нужно щелкнуть по нему или изменить person_id text_field? Любая помощь будет принята с благодарностью!Есть ли способ связать их вместе, чтобы они одновременно работали вместе?
Это мой контроллер для пользователя, это методы в моих javascipts.
класс UserController < ApplicationController
def populate_form
@visual = Visual.find_by_id(params[:emp_id])
@emp_first_name = @visual.first_name
@person_id = @visual.pds_alias
render :json => {
:emp_first_name => @emp_first_name,
:person_id => @person_id
}
end
def populate_manager
@manager = Manager.find_by_person_id(params[:person_id])
@mgr_first_name = @manager.mgr_name
render :json => {
:mgr_first_name => @mgr_first_name
}
end
end
Вот мой взгляд
<div class='row form-group'>
<div class='col-xs-8 col-xs-offset-2 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4 col-lg-2 col-lg-offset-5 text-right'>
<%= f.text_field :emp_id, tabindex: 1, id: 'emp_id', autofocus: true, placeholder: t('login_label'), class: 'form-control' %>
</div>
</div>
<div class='row form-group'>
<div class='col-xs-8 col-xs-offset-2 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4 col-lg-2 col-lg-offset-5 text-right'>
<%= f.text_field :emp_first_name, tabindex: 1, id: 'emp_first_name', autofocus: true, placeholder: t('login_label'), class: 'form-control' %>
</div>
</div>
<div class='row form-group'>
<div class='col-xs-8 col-xs-offset-2 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4 col-lg-2 col-lg-offset-5 text-right'>
<%= f.text_field :person_id, tabindex: 1, id: 'person_id', autofocus: true, placeholder: t('login_label'), class: 'form-control' %>
</div>
</div>
<div class='row form-group'>
<div class='col-xs-8 col-xs-offset-2 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4 col-lg-2 col-lg-offset-5 text-right'>
<%= f.text_field :mgr_first_name, tabindex: 1, id: 'mgr_first_name', autofocus: true, placeholder: t('login_label'), class: 'form-control' %>
</div>
</div>
А вот мой App.js
$(document).ready(function(){
$('#emp_id').change(function() {
var url = "/user/populate_form?emp_id="+$(this).val();
$.getJSON(url, function(data) {
if(!(data.emp_first_name === undefined))
$('#emp_first_name').val(data.emp_first_name);
if(!(data.person_id === undefined))
$('#person_id').val(data.person_id);
});
}
);
});
$(document).ready(function(){
$('#person_id').click(function() {
var url = "/user/populate_manager?person_id="+$(this).val();
$.getJSON(url, function(data) {
if(!(data.mgr_first_name === undefined))
$('#mgr_first_name').val(data.mgr_first_name);
});
}
);
});
Tl: dr, но не можете ли вы просто вызвать функцию 2 в конце функции 1? –
Как бы я мог это сделать, если бы вы показали мне? @Max Williams – sNOWsYSTEM