【发布时间】:2011-07-19 19:35:10
【问题描述】:
以下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);
});
}
我的问题是我不知道这实际上应该如何工作! 现在我在上面的代码示例中注释掉了当前密码字段。 popup-overlay 中的代码与当前密码字段的功能相同。
<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将“新密码”和“重复密码”分配(或移交)给覆盖表单吗?
我根本不知道该怎么做。
感谢您的帮助
【问题讨论】:
标签: jquery ruby-on-rails ruby ajax forms