следующая HTML-структура:
<%= form_for :user, :url => ajax_user_details_path, :html => { :id => 'accountPasswordForm' } do |user| -%>
<span class="text1" >new password:</span>
<%= password_field :user, :password, :class => 'input1', :id => 'accountNewPassword' %>
<span class="text1" >repeat password:</span>
<%= password_field :user, :password_confirmation, :class => 'input1', :id => 'accountRepeatPassword' %>
<!-- <span class="text1" >current password:</span>
<%= password_field :user, :current_password, :class => 'input1', :id => 'accountRepeatPassword' %> -->
<button class="button1" id="accountPasswordFormSubmit" name="accountPasswordFormSubmit" type="submit" >change password</button>
<% end -%>
Это рабочая форма, добавленная через ajax. Однако я хочу, чтобы поле текущего пароля находилось не внутри этой формы, а появлялось в оверлее после нажатия кнопки подтверждения.
Интересно, как я могу это решить?
Так что у меня уже есть работающая функция отправки ajax и оверлей.
Функция, которую я вызываю для отправки формы: triggerAjaxSubmit
:
function triggerAjaxSubmit(formId) {
$(formId).ajaxSubmit({
type: "POST",
dataType: "text json",
success: function(jsonObject,status) {
console.log("function() triggerAjaxSubmit : " + status);
}
});
}
Итак, теперь я хочу, чтобы текущая форма пароля была наложена, и поэтому я вызываю аналогичную функцию, которая внедряется в отправку формы.
При отправке формы я теперь вызываю следующую функцию triggerAjaxSubmitConfirmation
, которая открывает оверлей с полем текущего пароля. После отправки этой последней кнопки я снова вызываю функцию triggerAjaxSubmit
.
function triggerAjaxSubmitConfirmation(formId) {
showOverlay();
$('.overlay form').submit(function(e) {
e.preventDefault();
triggerAjaxSubmit(formId);
});
}
У меня проблема в том, что я понятия не имею, как это на самом деле должно работать!
Прямо сейчас я прокомментировал текущее поле пароля в примере кода выше. Код во всплывающем оверлее совпадает с функцией текущего поля пароля.
<div class="overlay">
<%= form_for :user, :url => ajax_user_details_path, :html => { :id => 'accountPasswordForm' } do |user| -%>
<span class="text1" >current password:</span>
<%= password_field :user, :current_password, :class => 'input1', :id => 'accountRepeatPassword' %>
<% end -%>
</div>
Мне просто нужен небольшой совет / подсказка, как на самом деле решить эту проблему! Могу ли я назначить (или передать) «новый пароль» и «повторный пароль» для оверлейной формы через javascript?
Я просто понятия не имею, как это сделать.
Спасибо за вашу помощь