部分时JS的变量不可访问

时间:2014-04-06 00:21:26

标签: javascript ruby-on-rails

我有一个带JS验证的注册表单。当注册表单直接在html中时,它工作正常。但是,当通过partial访问注册表单时,它无法从表单中读取变量。在这种情况下,表单始终显示错误“请输入您的姓名”。

JS:

$('.js-sign-up-submit').click(function(event) {
    event.preventDefault ? event.preventDefault() : event.returnValue = false;
    var nameFirst = $('.js-user-name-first').val();
    if (!nameFirst) {
      $('.js-sign-up-error').text('Please type in your name.');
    }
    ...
});

html布局:

<body>
  <%= render :partial => "/shared/header" %>
  <% if notice %>
    <p class="alert alert-notice"><%= notice %></p>
  <% end %>
  <% if alert %>
    <p class="alert alert-error"><%= alert %></p>
  <% end %>
  <%= yield %>
  <%= render :partial => "/shared/login_form" %>
  <%= render :partial => "/shared/sign_up_form" %>
  <%= render :partial => "/shared/password_reset_form" %>
  <%= render :partial => "/shared/footer" %>
 <%= javascript_include_tag "home" %>

</body>

1 个答案:

答案 0 :(得分:0)

原来在两个地方调用了注册表单的部分:在布局文件中(如上所示)和共享头文件中。因此,JS正在验证链接到布局中的注册表单,该表单不是用户填写的表单,因此无法注册输入的文本。我们只是删除了标题中的重复注册部分,现在它可以正常工作。